2014-11-20 3 views
5

Ich möchte 1 zurückgeben, wenn eine Nummer bereits in der Tabelle existiert und sonst 0.Geben Sie 1 zurück, wenn die Nummer in der Tabelle existiert und 0 sonst

Ich habe versucht, etwas, aber es funktioniert nicht:

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

ich etwas Ähnliches wollen existiert Funktion, die in PostgreSQL ist bereits vorhanden, aber statt true und false Ich möchte 1 oder 0.

+0

ich die Antwort gefunden: http://stackoverflow.com/questions/18309293/how-can-i-return-0-from-query-in-pgsql-if-the-row-doesnt-exist – thecoparyew

Antwort

3

EXISTS ergibt ein boolean Ergebnis.
Der einfache Weg zu erreichen, was Sie fordern ist Guss das Ergebnis integer:

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

TRUE ist 1.
FALSE ist 0.

1

Wenn das Feld, das Sie testen werden, ist der Primärschlüssel (oder eine andere eindeutige Einschränkung), dann können Sie einfach die Zählung zurückkehren (die immer 0 sein wird oder 1):

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