如果表格中已存在某个数字,则我想返回1,否则返回0。
我尝试了一些东西,但它不起作用:
select
case when 100 in (select distinct id from test) then '1'
else '0'
from test
我想要类似于PostgreSQL中已存在的存在函数的东西,而不是true
和false
我希望1
或0
。
答案 0 :(得分:6)
EXISTS
会产生boolean
结果
实现您要求的简单方法是强制结果integer
:
SELECT (EXISTS (SELECT 1 FROM test WHERE id = 100))::int;
TRUE
是1
FALSE
为0
。
答案 1 :(得分:1)
如果您正在测试的字段是主键(或其他一些唯一约束),那么您只需返回计数(始终为0或1):
SELECT count(*) FROM test WHERE id = 100;
答案 2 :(得分:0)
简单快捷:
SELECT ISNULL((SELECT 1 FROM test WHERE id = 100), 0) res