为什么下面的代码会给我0或0而不是空白值或空白行 在ValueA。列中。
如何将其更改为空白值?
select ValueA = case when ValueB = 'No' then ValueA
when ValueB = 'Yes' then ''
else ''
end
From Table
或
如果我使用ValueB = 'Yes' then CAST(NULL AS varchar(25))
给我Null
我想要空白,但是当我尝试转换为空白时
我得到零。为什么呢?
我怎么能得到空白?
答案 0 :(得分:1)
听起来像ValueA等于0。
答案 1 :(得分:1)
因为valueA是一个数字,并且它不能包含“空行”。它要么是0还是NULL。如果需要空白,则需要使用varchar或等效字符字段。
答案 2 :(得分:1)
值必须是数字数据类型。此外,您的WHEN 'Yes'
和ELSE
也是多余的。旅行>
SELECT ValueA = CASE ValueB
WHEN 'No' THEN CONVERT(VARCHAR(25), ValueA)
ELSE '' END
FROM dbo.[Table];
答案 3 :(得分:1)
select
case when ValueB = 'No' then Cast(ValueA as VarChar(10))
when ValueB = 'Yes' then ''
else ''
end as ValueA
From Table