以下工作吗? 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。
答案 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