sql - 在 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。
解决方案
如果你尝试它,你会得到一个类型转换错误。 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
推荐阅读
- azure-active-directory - 既然外部身份现在在常规 Azure AD 中可用,那么使用 Azure AD B2C 租户有什么好处?
- mysql - mysql“如果不存在则创建表”,判断表是否已创建
- r - 最小距离为“d”的子集“n”行
- python - 仅列出最具体的代码
- database - 微服务和语言资源包
- xcode - 在 Swift 包中创建自定义标头。Swift 包中不存在 IDETemplteMacros.plist
- python - 美丽的汤 - 将带有许多空格字符的文本放入 datafame
- components - Angular中的Ag-Grid cellRenderer单击事件
- latex - 是否可以根据 TikZ 的维恩图代码为 r 考试创建一个问题?
- flutter - 避免在 Setstate() Flutter 上重新加载 Listview