SQL查询仅在使用大小写时返回错误

SQL查询仅在使用大小写时返回错误,sql,Sql,下面是sql代码,语句总是返回“将数据类型varchar转换为数值时出错”。但是如果我注释掉它,那么即使在第一列中使用了相同的代码,语句也会成功运行 SELECT CAST(DATA1 AS DECIMAL(10,5)), AMOUNT, CASE WHEN NAME ='A' THEN CAST(DATA1 AS DECIMAL(10,5)) ELSE '0' END FROM TEST 如果我按上面的方式运行,它将失败。如果我在代码块运行时注释掉案例,那么它将成功运行。谢谢 您的CASE语

下面是sql代码,语句总是返回“将数据类型varchar转换为数值时出错”。但是如果我注释掉它,那么即使在第一列中使用了相同的代码,语句也会成功运行

SELECT CAST(DATA1 AS DECIMAL(10,5)), AMOUNT, CASE WHEN NAME ='A' THEN CAST(DATA1 AS DECIMAL(10,5)) ELSE '0' END FROM TEST

如果我按上面的方式运行,它将失败。如果我在代码块运行时注释掉案例,那么它将成功运行。谢谢

您的CASE语句试图返回两种不同的类型,DECIMAL(10,5)和varchar


它需要返回一种类型,因此使用0.0代替“0”。

您告诉它在同一列中显示两种不同的数据类型。尝试

SELECT CAST(DATA1 AS DECIMAL(10,5)), AMOUNT, 
CASE 
  WHEN NAME LIKE 'A' THEN CAST(DATA1 AS DECIMAL(10,5)) 
  ELSE CAST(0.0 AS DECIMAL(10,5)) END FROM TEST