我以前也问过同样的问题,答案是 psql 如何使用“in”运算符返回0而不是null。这就是解决方案的想法,使用一个构建的列表代替 in :
psql
in
select * from ( values (1), (2), (3) ) as required_ids ( text_id );
但我还是得重写一遍 sqlite3 ,问题是,没有 values(...) 里面的东西 sqlite3 ,因此我无法构建列表而不是 in(...) . 有人知道怎么做吗?谢谢!!
sqlite3
values(...)
in(...)
aemubtdh1#
你可以用 select / union all :
select
union all
select * from (select 1 as text_id union all select 2 union all select 3) required_id
z4bn682m2#
sqlite3中没有值(…)的东西当然有,因为版本3.15:
select * from (values (1), (2), (3));
您可以将返回的列引用为 column1 .结果:
column1
> | column1 | > | ------: | > | 1 | > | 2 | > | 3 |
或者在一个 CTE :
CTE
with cte(val) as ( select * from (values (1), (2), (3)) ) select * from cte
结果:
> | val | > | --: | > | 1 | > | 2 | > | 3 |
请看演示。
2条答案
按热度按时间aemubtdh1#
你可以用
select
/union all
:z4bn682m2#
sqlite3中没有值(…)的东西
当然有,因为版本3.15:
您可以将返回的列引用为
column1
.结果:
或者在一个
CTE
:结果:
请看演示。