gpt4 book ai didi

SQL 如何将数组转换为用于 IN 子句的值

转载 作者:行者123 更新时间:2023-11-29 14:08:08 25 4
gpt4 key购买 nike

在 Postgres SQL 中工作:

create table TAB1 ( X int, Y varchar(12));

insert into TAB1 values (1, 'ABC');
insert into TAB1 values (2, 'BCD');
insert into TAB1 values (3, 'EFG');

我的查询参数以逗号分隔的字符串形式出现:'ABC,BCD'

我正在尝试构建下面的查询,但出现错误:

select * 
from TAB1
where Y in (STRING_TO_ARRAY('ABC,BCD', ','));

错误:

Operator does not exist: character varying = text[]

我的问题是如何将“ABC,BCD”转换为要在 IN 子句中使用的值列表。更喜欢 SQL 查询中的答案,而不是方法或函数。谢谢。

最佳答案

对于数组,您需要使用ANY 运算符:

select * 
from TAB1
where Y = any( STRING_TO_ARRAY('ABC,BCD', ',') );

关于SQL 如何将数组转换为用于 IN 子句的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com