sqlite:在'in'运算符中找不到行时如何返回0

6rqinv9w  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(449)

我以前也问过同样的问题,答案是 psql 如何使用“in”运算符返回0而不是null。这就是解决方案的想法,使用一个构建的列表代替 in :

select * from
(
    values (1), (2), (3)
) as required_ids ( text_id );

但我还是得重写一遍 sqlite3 ,问题是,没有 values(...) 里面的东西 sqlite3 ,因此我无法构建列表而不是 in(...) . 有人知道怎么做吗?谢谢!!

aemubtdh

aemubtdh1#

你可以用 select / union all :

select *
from (select 1 as text_id union all select 2 union all select 3) required_id
z4bn682m

z4bn682m2#

sqlite3中没有值(…)的东西
当然有,因为版本3.15:

select * from (values (1), (2), (3));

您可以将返回的列引用为 column1 .
结果:

> | column1 |
> | ------: |
> |       1 |
> |       2 |
> |       3 |

或者在一个 CTE :

with cte(val) as (
  select * from (values (1), (2), (3))
)
select * from cte

结果:

> | val |
> | --: |
> |   1 |
> |   2 |
> |   3 |

请看演示。

相关问题