Tôi có 2 cột không có giá trị CHAR
và tôi cần kiểm tra xem chỉ một trong số chúng là không.XOR lôgic hợp lý cho các giá trị có thể vô hiệu
Làm
(a IS NULL AND b IS NOT NULL) OR (a IS NOT NULL AND b IS NULL)
là nhàm chán. Và tôi muốn tránh tạo các chức năng tùy chỉnh cho điều đó.
Tôi đã suy nghĩ về một cái gì đó giống như
COALESCE(a, 1) + COALESCE(b, 1) = 1
nhưng miễn là a
là char
- nó gây ra loại toán hạng lỗi.
Vì vậy, bất kỳ giải pháp nào khó khăn?
Làm thế nào về 'COALESCE (a, b) = COALESCE (b, a)' :) Sẽ mang lại giá trị không chính xác nếu 'a = b'. http://www.sqlfiddle.com/#!1/9c33b/1 – mellamokb
@mellamokb: xứng đáng là một upvote, mặc dù 'chọn coalesce (null, null) = coalesce (null, null)' trả về không boolean (có thể dẫn đến lỗi trong một số trường hợp) – zerkms