首页 > 解决方案 > 在 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。

标签: sql

解决方案


如果你尝试它,你会得到一个类型转换错误。 case是一个返回单个值的表达式,具有明确定义的类型。

当 a 的一个分支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

推荐阅读