Mam 2 kolumny zerowe CHAR
i muszę sprawdzić, czy tylko jeden z nich ma wartość null.Tricky logiczny XOR dla wartości zerowalnych
Doing
(a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL)
jest nudny. I chciałbym uniknąć tworzenia niestandardowych funkcji do tego.
Myślałam o czymś jak
COALESCE(a, 1) + COALESCE(b, 1) = 1
ale dopóki a
jest char
- powoduje błąd typu argumentu.
Więc, jakieś podchwytliwe rozwiązania?
Jak o 'COALESCE (a, b) = COALESCE (b, a)' :) przyniesie nieprawidłową wartość, jeśli 'a = b'. http://www.sqlfiddle.com/#!1/9c33b/1 – mellamokb
@mellamokb: zasługuje na awans, chociaż 'wybierz koalescencję (null, null) = koalescytacja (null, null)' zwraca nie boolean (co może prowadzić do błędy w niektórych przypadkach) – zerkms