2012-12-21 29 views
5

Hãy nói rằng tôi cóĐÂU tuyên bố với điều kiện khi một cột là NULL

ID  | Column 1 | Column 2 
    2  |  NULL |  "a" 
    3  |  "b" | NULL 
    4  |  "c" |  "c" 

Những gì tôi muốn viết những dòng này là:

SELECT ID FROM table, AnotherTable 
    WHERE (Table.Column1 = AnotherTable.Column IF Table.Column1 IS NOT NULL 
    OR Table.Column2 = AnotherTable.Column IF Table.Column2 IS NOT NULL) 

EDIT: Tôi cũng thêm trường hợp NẾU Table.Column1 IS NOT NULL VÀ Table.Column2 IS NOT NULL THEN CHỌN Table.Column2 = AnotherTable.Column

+0

Vì vậy, chỉ 1 trong 2 cột có thể có 'null'? Có vẻ như bạn cần tham gia bên ngoài đầy đủ. –

Trả lời

10

Bạn có thể sử dụng chức năng COALESCE():

012.
SELECT ID 
FROM table JOIN AnotherTable 
       ON AnotherTable.Column = COALESCE(table.Column1, table.Column2) 
+0

Điều gì sẽ xảy ra nếu cả hai Cột 1 và Cột 2 có giá trị nhưng tôi chỉ muốn cột 2. – user461316

+2

@ user461316: đảo ngược thứ tự của các đối số? – eggyal

Các vấn đề liên quan