2016-08-01 13 views
0

Beim Vergleichen boolescher Werte in PostgreSQL verwenden wir den Vergleichsoperator =. Das ist alles gut, aber wenn ich gegen übereinstimmende NULL-Werte überprüfen möchte, was sollte ich verwenden?PostgreSQL - Vergleichen boolescher Werte, die null sein können

Ich habe IS NICHT DISTINCT FROM verwendet, wenn Integer verglichen werden, die übereinstimmen müssen, wenn beide NULL sind, aber ist es ein richtiger Weg zu gehen, wenn boolesche Werte behandelt werden?

+0

'Pass ist [ nicht] null '? – freakish

+0

'distinct from' funktioniert auch mit booleans:' ist nicht von wahr ' –

Antwort

0

Verwenden Sie is null Klausel. Wie folgt aus:

select * from my_table where my_booleae_field is null 
+0

Es war nicht die Frage. Ich brauche keine Daten, wo smth null ist. Ich muss Argument mit DB-Wert vergleichen, wo sie Null sein können, aber auch "korrekte" boolesche Werte sein können. – KasparTr

1

ich verwendet habe, nicht getrennt von, wenn ganze Zahlen vergleichen, die übereinstimmen müssen, wenn beide NULL sind, aber es ist ein corract Weg zu gehen, wenn sie mit Boolesche Werte zu tun?

Ich sehe keinen Grund, warum nicht. :)

x IS NOT DISTINCT FROM y ist im Grunde Kurz Hand für (x = y) OR (x IS NULL AND y IS NULL)

0

Versuchen coalesce

Wie mit:

where coalesce(your_field, true) = true 

Dann Nullwerte und boolean true wird die Anweisung

Verwandte Themen