我試圖返回查詢結果到一個變量,我能夠在插入語句中使用它。但是,即使我相信我的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 –