2012-07-17 100 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