的其他部分我有case語句與NULLIF函數...如何使用NULLIF函數在case語句
case when itm>0 then itm else nullif(vnd||':','0:')||sty end
每當其他部分被執行,如果越南盾爲null,不過0我沒有得到豬圈欄。 如果vnd存在,那麼我需要與':'vnd和sty值進行連接。
的其他部分我有case語句與NULLIF函數...如何使用NULLIF函數在case語句
case when itm>0 then itm else nullif(vnd||':','0:')||sty end
每當其他部分被執行,如果越南盾爲null,不過0我沒有得到豬圈欄。 如果vnd存在,那麼我需要與':'vnd和sty值進行連接。
我不確定我完全理解你的問題,但這是否讓你接近你要找的東西?
DECLARE @itm VARCHAR(10), @sty VARCHAR(10), @vnd VARCHAR(10)
SET @itm = '0'
SET @sty = '2'
SET @vnd = '3'
SELECT
case
when @itm>0 then @itm
WHEN @itm <= 0 THEN ISNULL(@vnd, 0) + ':' + ISNULL(@sty, '0')
END
我真的不確定你在這裏需要什麼。我想我有一個想法,但需要澄清。你是說如果vnd爲null,那麼你沒有得到sty字段?
如果這是真的,那麼DB2正在做你想做的事情,因爲將null值連接到別的東西上也會返回null。
CASE
WHEN itm > 0 THEN itm
WHEN (vnd IS NULL OR vnd = 0) THEN sty
ELSE vnd || ':' || sty
END
如果vnd是null,但0和sty包含ABC,那麼輸出將是0:ABC我不想要0:ABC我們只需要ABC。如果vnd和sty包含值(vnd:123&sty:ABC),那麼輸出應該是123:ABC – user2189200 2013-03-21 05:55:47
我編輯了我的答案,我認爲這會給你你想要的東西... – bhamby 2013-03-21 13:35:27
目前尚不清楚你期望的是什麼:當sty爲null,當sty = 0,sty!= 0時,你能提供一個例子嗎? – 2013-03-20 15:48:22