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

时间:2014-11-20 17:02:31

标签: sql postgresql boolean exists

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

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

select
case when 100 in (select distinct id from test) then '1'
else '0'
from test

我想要类似于PostgreSQL中已存在的存在函数的东西,而不是truefalse我希望10

3 个答案:

答案 0 :(得分:6)

EXISTS 会产生boolean结果 实现您要求的简单方法是强制结果integer

SELECT (EXISTS (SELECT 1 FROM test WHERE id = 100))::int;

TRUE1 FALSE0

答案 1 :(得分:1)

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

SELECT count(*) FROM test WHERE id = 100;

答案 2 :(得分:0)

简单快捷:

SELECT ISNULL((SELECT 1 FROM test WHERE id = 100), 0) res