繁体   English   中英

将 varchar 值转换为数据类型 int 时,SQL Select Case Conversion 失败

[英]SQL Select Case Conversion failed when converting the varchar value to data type int

在案例陈述的帮助下,我想在值为 0 的 Geodept 列中获得“非收入”的结果

简单的 case 语句 - (给出转换错误)

case when GeoDeptId = 0 then 'Non Revenue' else GeoDeptId end

所以尝试如下但再次获得价值为0

convert(int, case when IsNumeric(convert(int, rd.GeoDeptId ))= 0 then convert (varchar(14),'Non Revenue') else rd.GeoDeptId
end ),

所以尝试如下但再次获得价值为0

convert(int, case when IsNumeric(convert(int, rd.GeoDeptId ))= 0 then convert (varchar(14),'Non Revenue') else rd.GeoDeptId
end )

GeoDeptId为文本:

CASE WHEN GeoDeptId = 0 THEN 'Non Revenue' ELSE CAST(GeoDeptId AS varchar(max)) END

错误的根源是CASE表达式的所有分支必须具有相同的类型。 由于无法将'Non Revenue'转换为整数,因此我们可以将GeoDeptId转换为文本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM