SQL Server 将varchar值转换为int数据类型时,SQL选择大小写转换失败

kcrjzv8t  于 2022-12-17  发布在  其他
关注(0)|答案(1)|浏览(241)

在case语句的帮助下,我希望在Geodept列中获得值为0的结果“Non Revenue
简单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 )
j0pj023g

j0pj023g1#

GeoDeptId转换为文本:

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

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

相关问题