使用SQL CASE语句但返回相同的列值

时间:2012-12-10 07:59:33

标签: sql case

我是SQL&的新手有以下问题:

我在名为performance的表中有以下专栏:

numbers
-------
13.80
4.9
32.1
0.00
12
0.00

我想选择这个表,但是0.00,我想要返回 - 。所以选择之后应该是:

numbers
-------
13.80
4.9
32.1
-
12
-

我尝试使用如下案例:

select
    numbers, 
    case numbers
        when 0.00 then '-' 
    end as numbers
from 
    Performance

我知道这不正确&工作中的另一个扳手是数字列数据类型为decimal(18, 2)

有人可以帮助我选择这个吗?就像我提到的那样,我仍然是SQL的新手,但我认为CASE不是正确的选择。

谢谢你

1 个答案:

答案 0 :(得分:4)

您需要将数字转换为varchar(19)(18 +小数点分隔符)。

select case numbers 
         when 0 
         then '-' 
         else cast(numbers as varchar(19)) 
       end as numbers