我正在尝试在 Postgresql 中制作一个简单的 SQL 问题以在我们团队中使用 与信息管理一起使用:
with findData as
(
select '(''XXX'',''YYYY'')' as dataList
)
select * from findData
给出答案:
('XXX','YYYY') 正是我想要的
但是我想在一个简单的 SQL 脚本中像这样使用它:
select t.variabel1
,t.variabel2
from myTable t
where t.variabel3 in (select dataList from findData);
但这行不通。 。 .
我的问题有解决了吗?
参见上面的描述。
目前,数据列表被视为单个字符串值。因此,要使用“IN”,您需要将它们分开。可以这样做。
with findData as (
select unnest(array['XXX', 'YYYY']) as dataList
)
select t.variabel1, t.variabel2
from myTable t
where t.variabel3 in (select dataList from findData);
unnest 函数用于将数组展开为行。