我一直收到错误,我的案例功能不正确。我的目标是使用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
答案 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