将值设置为空字符串(case语句)

时间:2016-03-03 05:55:59

标签: sql

在我的存储过程中,我的select语句中有一个case条件。

像这样:

select Distinct col_1, col_2, col_3, Case when (ISNULL(char_01, 'M') = 'M') 
Then
.....
Else
End

From my_table

您可以看到我有一个列名char_01。假设我想将char_01替换为' M'然后有一个null列。另外,我想将char_01替换为' M'当有空列时。到目前为止,我只能检查null(ISNULL(char_01, 'M') = 'M'),但我不知道如何检查空列。

我试过了:

Case when (ISNULL (char_01, 'M') = 'M') or //If char_01 is empty, then replace this column as 'M'
THen .... 
Else
end

我被困在第二部分,任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:2)

ISNULL(NULLIF(char_01, ''), 'M')

如果char_01为空,则NULLIF将返回NULL,然后ISNULL将选择“M”。如果char_01 IS NULL,NULLIF仍将返回NULL,ISNULL将再次拾取'M'。如果char_01既不是NULL也不是空,则NULLIF和ISNULL都将返回其值。

NULLIF

样品:

create table tbl (col1 varchar(5));
insert into tbl Values (''), (' '), (NULL), ('abc'), ('NULL');

SELECT ISNULL(NULLIF(col1, ''), 'M')
FROM tbl