SQL Case无法摆脱0

Obf*_*ted 0 sql sql-server-2008

我有一个2列的表."测试"和Cust#."测试"填充"Y"或"N".Cust#填充了客户编号.

如果测试是"Y",则cust#=数字.如果是"N",则cust#= 0.

我不希望"0"返回我的网格显示.这是我正在使用的一行...

(case when test = 'Y' then custno else '' end) Cust#
Run Code Online (Sandbox Code Playgroud)

"Else''"仍然返回"0",我尝试了几种不同的安排,并且在test ="N"时无法获得空白返回而不是"0".

Gor*_*off 7

如果Cust#是数字,那么您对输出的选择是数字或NULL.所以,去吧,NULL然后离开else:

(case when test = 'Y' then custno end) as Cust#
Run Code Online (Sandbox Code Playgroud)

如果你真的想要一个空白,那么将值转换为字符串:

(case when test = 'Y' then cast(custno as varchar(255)) else '' end) as Cust#
Run Code Online (Sandbox Code Playgroud)