2014-11-20 102 views
5

如果表中已經存在某個數字,則返回1,否則返回0。如果表中存在數字,則返回1,否則返回0

我試過的東西,但它不工作:

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

我想類似的東西存在,已經存在於PostgreSQL的功能,但不是truefalse我想10

+0

我找到了答案: http://stackoverflow.com/questions/18309293/how-can-i-return-0-from-query-in-pgsql-if-the-row-doesnt-exist – thecoparyew 2014-11-20 17:12:35

回答

3

EXISTS產生boolean結果。
簡單的方法來達到你所要求的是的結果integer

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

TRUE1
FALSE0

1

如果您正在測試的領域是主鍵(或其他一些獨特的約束),那麼你可以簡單地返回計數(這將始終爲0或1):

SELECT count(*) FROM test WHERE id = 100; 
相關問題