我有nullif函数的case语句......
case when itm>0 then itm else nullif(vnd||':','0:')||sty end
如果其他部分正在执行,如果vnd为null,则只有0,我没有得到sty列。 如果vnd存在,那么我需要使用':'和vnd和sty值进行连接。
答案 0 :(得分:0)
我不确定我完全理解你的问题,但是这会让你接近你正在寻找的东西吗?
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
答案 1 :(得分:0)
我真的不确定你需要什么。我想我有一个想法,但需要做一些澄清。你是说如果vnd为null,那么你没有得到麦粒肿领域?
如果这是真的,那么DB2正在做你想要的,因为将null值连接到其他东西也会返回null。
CASE
WHEN itm > 0 THEN itm
WHEN (vnd IS NULL OR vnd = 0) THEN sty
ELSE vnd || ':' || sty
END