您可以使用CASE更改NULL列的值吗?

时间:2013-11-19 16:16:16

标签: sql tsql

我知道你可以使用COALESCE和ISNULL,但我很想知道你是否可以用SELECT案例来做。

我有这个

SELECT (CASE Table.Column WHEN ' ' THEN '1/1/2001' Else Table.Column End),Column2
FROM Table

这没有做任何事情所以我试过了:

   SELECT (CASE Table.Column WHEN NULL THEN '1/1/2001' Else Table.Column End),Column2
   FROM Table

没有

好奇。谢谢!

3 个答案:

答案 0 :(得分:2)

您当然可以使用is [not] null谓词:

select
 case
    when t.Column1 is null then '1/1/2001'
    else t.Column1
 end
,t.Column2
from Table1 as t

但是,有一些专门用于处理null的功能:

  

1。 isnull(check_expression , replacement_value)

     

用指定的替换值替换NULL。

select
 isnull(t.Column1, '1/1/2001')
,t.Column2
from Table1 as t
     

<小时/>    2。 coalesce(expression [ ,...n ])

     

按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值。

select
 coalesce(t.Column1, '1/1/2001')
,t.Column2
from Table1 as t

答案 1 :(得分:1)

ISNULL

一起使用
SELECT CASE WHEN Column IS NULL 
            THEN '1/1/2001' 
            ELSE Column 
       END,
       Column2
FROM Table

答案 2 :(得分:1)

nulls需要IS个关键字,而不是WHEN=