在SQL中使用情况不同的数据类型

时间:2019-05-02 01:28:23

标签: sql

以下工作吗? Val是整数列。

Select case when val <= 5 then val else "greater than 5" end as val_category from table

此处的'Case when'在val <= 5时输出val(整数值),否则,它输出字符串值“大于5”。我想知道这是否适用于SQL。

1 个答案:

答案 0 :(得分:2)

如果尝试尝试,则会出现类型转换错误。 case是一个返回具有明确定义类型的值的表达式。

case的一个分支返回数字时,则该值为数字-这些是SQL的类型转换规则。字符串'greater than 5'无法转换,因此会出现错误。

因此,只需进行显式转换即可

select (case when val <= 5
             then cast(val as varchar(255))
             else 'greater than 5'
        end) as val_category
from table