2012-07-17 65 views
3

假設我有一個查詢Null值處理

SELECT val FROM tbl 

我想寫查詢,將輸出「ValueIsNotNull」當val爲NOT NULL和「ValueIsNull」當val爲null。是否可以用一行來完成。截至目前,我只找到ISNULL(val,'ValueIsNull') AS val1。但是,如果值不爲null,則會打印原始值。

回答

9
select 
    case 
     when val is null then 'ValueIsNull' 
     else 'ValueIsNotNull' 
    end 
    as NewVal 
from tbl 
+0

謝謝,這工作。還有一個懸而未決的問題。 C#中是否有任何方法來編寫多行字符串? – seeker 2012-07-17 13:54:05

+1

是的,使用多行字符串前面的「@」。這是一個非常隨意的問題。 – 2012-07-17 13:55:44

3

你想要的case語句功能:

select (case when val is NULL then 'ValueIsNull' else 'ValueIsNotNull' end) 
3
SELECT CASE WHEN val IS NULL THEN 'ValueIsNotNull' ELSE 'ValueIsNull' END