2014-11-20 3 views
5

यदि मैं तालिका में कुछ संख्या पहले से मौजूद है और 0 अन्यथा वापस लौटना चाहता हूं तो 1 वापसी करना चाहता हूं।तालिका 1 में मौजूद संख्या और 0 अन्यथा

मैं कुछ कोशिश की, लेकिन यह काम नहीं करता:

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

मैं ऐसी ही कुछ चाहते समारोह है कि पहले से ही PostgreSQL में मौजूद है मौजूद है, लेकिन true और false के बजाय मैं 1 या 0 चाहते हैं।

+0

मैं इस सवाल का जवाब मिल गया: http://stackoverflow.com/questions/18309293/how-can-i-return-0-from-query-in-pgsql-if-the-row-doesnt-exist – thecoparyew

उत्तर

3

EXISTSboolean परिणाम उत्पन्न करता है।
को प्राप्त करने के लिए आप क्या कह रहे हैं आसान तरीका integer को डाली परिणाम के लिए है:

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

TRUE1 है।
FALSE0 है।

1

क्षेत्र परीक्षण किए जाने प्राथमिक कुंजी (या कुछ अन्य अद्वितीय बाधा), तो आप बस गिनती लौट सकते है (जो हमेशा 0 है या होगा 1):

SELECT count(*) FROM test WHERE id = 100; 
संबंधित मुद्दे