Ho 2 colonne nullable CHAR
e ho bisogno di controllare se solo uno di loro è nullo.XOR logico ingannevole per valori nullable
Facendo
(a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL)
è noioso. E vorrei evitare di creare funzioni personalizzate per questo.
Stavo pensando a qualcosa di simile
COALESCE(a, 1) + COALESCE(b, 1) = 1
ma finché a
è char
- è causa l'errore tipo di operando.
Quindi, qualsiasi ingannevole soluzioni?
ne dite 'COALESCE (a, b) = COALESCE (b, a)' :) produrrà valore errato se 'a = b'. http://www.sqlfiddle.com/#!1/9c33b/1 – mellamokb
@mellamokb: merita un upvote, anche se 'select coalesce (null, null) = coalesce (null, null)' non restituisce booleano (che potrebbe portare a errori in alcuni casi) – zerkms