2013-06-24 27 views
34

tôi có như sau:SQL liên hiệp với chuỗi rỗng

 Select Coalesce(Other,Industry) Ind from registration 

Cái này là khác có thể là một chuỗi rỗng hoặc NULL. Làm thế nào để tôi có được kết hợp để làm việc như vậy nếu khác là một chuỗi rỗng, Coalesce vẫn cư xử như nó phải không?

+2

thế nào * bạn * nghĩ liên hiệp đó nên cư xử, vì nó có vẻ là một cái gì đó khác hơn so với tiêu chuẩn? – Guffa

Trả lời

76

Sử dụng một biểu thức CASE hoặc NULLIF:

SELECT COALESCE(NULLIF(Other,''),Industry) Ind FROM registration 
13

thử này

Select Coalesce(nullif(Other,''),Industry) Ind from registration 
3

Bạn cũng có thể sử dụng một short-cut biết rằng NULL <> '' không đánh giá để TRUE ...

CASE WHEN other <> '' THEN other ELSE industry END 

Logic sau đó hoạt động như sau ...

  • CASE WHEN 'fubar' <> '' THEN other ELSE industry END
    =>CASE WHEN true THEN other ELSE industry END
    =>other

  • CASE WHEN '' <> '' THEN other ELSE industry END
    =>CASE WHEN false THEN other ELSE industry END
    =>industry

  • CASE WHEN NULL <> '' THEN other ELSE industry END
    =>CASE WHEN NULL THEN other ELSE industry END
    =>industry

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