使用 Case 函数使 NULL 值显示为空白

Using Case Function to make NULL values appear as blank

我不断收到错误消息,提示我的 Case 函数不正确。我的目标是使用 Case 函数使每个 NULL 或“0”值都显示为空白。 Incompatible data types in case statement 是我在 report studio 中 运行 时得到的提示。 table 的示例是这样的。 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

由于 WCPDOD 是一个整数,您不应将其与 '0' 等字符串文字进行比较,而应将其与 0 等数字文字进行比较。更重要的是,case 语句的不同分支 return 不同类型 - 前两个 return 字符串(' ' 文字)和 else 分支 return 是 integer。您应该将其转换为字符串:

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