如果表中存在数字则返回1,否则返回0

the*_*yew 7 sql postgresql boolean exists

如果表中已存在某个数字,则我想返回1,否则返回0.

我尝试了一些但它不起作用:

select
case when 100 in (select distinct id from test) then '1'
else '0'
from test
Run Code Online (Sandbox Code Playgroud)

我想要的东西,类似存在已经存在于PostgreSQL的功能,但不是truefalse我想要10.

Erw*_*ter 8

EXISTS产生一个boolean结果.
最简单的方法来实现你所要求的是要的结果integer:

SELECT (EXISTS (SELECT 1 FROM test WHERE id = 100))::int;
Run Code Online (Sandbox Code Playgroud)

TRUE1.
FALSE0.


Sam*_*kri 6

如果您正在测试的字段是主键(或其他一些唯一约束),那么您可以简单地返回计数(始终为 0 或 1):

SELECT count(*) FROM test WHERE id = 100;
Run Code Online (Sandbox Code Playgroud)