使用SQL CASE语句但返回相同的列值
我是SQL的新手,有以下问题: 我在一个名为Performance的表格中有以下列:使用SQL CASE语句但返回相同的列值,sql,case,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 '-'
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
我知道这是不正确的&另一个正在研究的问题是数字列的数据类型是小数18,2
有人能帮我选择吗?正如我所提到的,我对SQL还是新手,但我认为CASE不是适合这种情况的选择
谢谢您需要将数字转换为varchar19 18+十进制分隔符
select case numbers
when 0
then '-'
else cast(numbers as varchar(19))
end as numbers
您需要将数字转换为varchar19 18+十进制分隔符
select case numbers
when 0
then '-'
else cast(numbers as varchar(19))
end as numbers
你为什么要这样做?这闻起来像是你在寻求错误问题的解决方案。如果0.00表示没有测量值,您是否考虑过使用空值而不是0.00?在显示数据时是否需要“-”?如果是这样,您不应该在数据库层,而应该在应用程序层执行此操作。是-它仅用于显示数据,不对DBSo进行任何更改。正确的方法是检查程序中的值,如果它等于0.0,则改为打印“-”。如果没有测量,也可以考虑使用NULL,而不是0。为什么要这样做?这闻起来像是你在寻求错误问题的解决方案。如果0.00表示没有测量值,您是否考虑过使用空值而不是0.00?在显示数据时是否需要“-”?如果是这样,您不应该在数据库层,而应该在应用程序层执行此操作。是-它仅用于显示数据,不对DBSo进行任何更改。正确的方法是检查程序中的值,如果它等于0.0,则改为打印“-”。如果没有测量,也可以考虑使用NULL,而不是0。