我想将空白作为输出而不是零或NULL作为此查询的输出
select ID,
CASE WHEN VOL LIKE '%[1-9]%'
AND TYPE IN ('P','Q') THEN 20
ELSE ' '
END AS QUAN
输出现在是:
ID QUAN
F234 20
G345 20
R445 0
T334 0
期望的输出:
ID QUAN
F234 20
G345 20
R445
T334
尝试使用NULL在Quan列中仍然为0。请帮忙
答案 0 :(得分:3)
您的case
表达式必须返回一种类型,但指定了两种不同的类型(整数和字符串):
select ID,
(CASE WHEN VOL LIKE'%[1-9]%' AND TYPE IN ('P','Q') THEN 20
ELSE ' '
END) AS QUAN
字符串变为整数值0
。
通常,在SQL中,您只需使用NULL
:
select ID,
(CASE WHEN VOL LIKE '%[1-9]%' AND TYPE IN ('P','Q') THEN 20
END) AS QUAN
但是,在这种情况下,如果确实想要字符串,请创建20
'20'
:
select ID,
(CASE WHEN VOL LIKE '%[1-9]%' AND TYPE IN ('P','Q') THEN '20'
ELSE ' '
END) AS QUAN