如何修复此数据类型错误?
How do I fix this data type error?
当我在查询中插入以下内容时出现错误
,max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else '' end)
TotalPaid
是一个包含的字段,例如:445.45
.
我收到的消息是:
Error converting data type varchar to numeric
但是,这个 case 语句有效:
,max(case when patins.rank = 1.0 then INSCOMP.ORG else '' end)
Inscomp.Org
就给保险公司吧
问题:
字段 TOTALPAID
是数字。 Case 语句可以 return 相同 数据类型的值。如果满足条件,您正在尝试 return 一个数值,如果不满足,则尝试 return 一个 varchar 值。就是这个问题。
解法:
您可以转换一个字段以匹配其他字段的类型
max(case when patins.rank = 1.0 then CAST(CLAIMS.[TOTALPAID] as varchar(max)) else '' end)
你可以returnNULL
如果你愿意。不会有任何问题的。
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else NULL end)
或者只删除 "else" 部分
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] end)
不满足条件则returnNULL
case
表达式的所有分支必须return 相同的数据类型。所以你不能有其中一个 return totalpaid
,它是一个数字列,而另一个 return ''
,它是一个字符串文字。相反,您可以 return 一个实际的 null
:
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else null end)
实际上,由于 case
表达式的默认 return 值无论如何都是 null
,您可以省略 else
子句:
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] end)
当我在查询中插入以下内容时出现错误
,max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else '' end)
TotalPaid
是一个包含的字段,例如:445.45
.
我收到的消息是:
Error converting data type varchar to numeric
但是,这个 case 语句有效:
,max(case when patins.rank = 1.0 then INSCOMP.ORG else '' end)
Inscomp.Org
就给保险公司吧
问题:
字段 TOTALPAID
是数字。 Case 语句可以 return 相同 数据类型的值。如果满足条件,您正在尝试 return 一个数值,如果不满足,则尝试 return 一个 varchar 值。就是这个问题。
解法:
您可以转换一个字段以匹配其他字段的类型
max(case when patins.rank = 1.0 then CAST(CLAIMS.[TOTALPAID] as varchar(max)) else '' end)
你可以return
NULL
如果你愿意。不会有任何问题的。max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else NULL end)
或者只删除 "else" 部分
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] end)
不满足条件则returnNULL
case
表达式的所有分支必须return 相同的数据类型。所以你不能有其中一个 return totalpaid
,它是一个数字列,而另一个 return ''
,它是一个字符串文字。相反,您可以 return 一个实际的 null
:
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] else null end)
实际上,由于 case
表达式的默认 return 值无论如何都是 null
,您可以省略 else
子句:
max(case when patins.rank = 1.0 then CLAIMS.[TOTALPAID] end)