案例陈述归零

时间:2014-04-18 01:02:21

标签: sql tsql

我想将空白作为输出而不是零或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。请帮忙

1 个答案:

答案 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