使用Case Function使NULL值显示为空白

时间:2015-06-24 20:54:04

标签: cognos-10

我一直收到错误,我的案例功能不正确。我的目标是使用Case Function来制作每个NULL或' 0'值显示为空白。 case语句中不兼容的数据类型是我在report studio中运行它时得到的提示。表的例子就是这个。 WCPDOD是一个整数,WCPDOD 9int,null)

WCPDOD     POLICY   CLAIM NUMBER
19741020   2001A    123456N000040
20040101   2003A    456789001531
20021220   00594        123456
20040507   2003A    2222043621
20040517   2003I    90043625

CASE 
WHEN [WCPDOD] = '0' THEN ' '
WHEN [WCPDOD] IS NULL THEN ' '
ELSE [WCPDOD]
END

1 个答案:

答案 0 :(得分:3)

由于WCPDOD是一个整数,因此您不应将其与'0'等字符串文字进行比较,而应将其与数字文字(例如0)进行比较。更重要的是,case语句的不同分支返回不同的类型 - 前两个返回字符串(' '文字)和else分支返回integer。你应该把它投射到一个字符串:

CASE 
WHEN [WCPDOD] = 0 THEN ' '
WHEN [WCPDOD] IS NULL THEN ' '
ELSE CAST ([WCPDOD] AS VARCHAR(40))
END