我试图返回查询结果到一个变量,我能够在插入语句中使用它。但是,即使我相信我的ISNULL(NULLIF())
设置正确,我的选择仍然返回null。处理空白查询结果,ISNULL(NULLIF())
declare @test varchar(10)
set @test = (select ISNULL(NULLIF(discnumber,''),'NA')
from discmaster
where meteredfilename = '3501' or nonmeteredfilename='3501')
select @test
看起来正确但仍然返回NULL
值。你会选择案例,但不是100%确定该方法。
同意,这可能是一个不返回行的查询。但是:你为什么说'COALESCE'基本上比'ISNULL'好? –
@Philip - 因为它泛化为2个以上的参数,并且返回类型基于两个(或所有)参数类型(即它使用类型优先规则),而不是试图强制第二个参数的类型与第一个参数的类型。例如。 '选择ISNULL(CAST(null作为CHAR(2)),'abc')'返回''ab''。 –
太棒了,做到了。感谢所有帮助的人n.n –