Select CASE WHEN loc ='J' THEN 'Y'
WHEN loc NOT IN ('J') THEN 'N'
ELSE 0 END AS loc FROM [prd].[dbo].[GRP]
EXCEPT
Select location FROM [prd1].[dbo].[GRPO] WHERE VALUE IN('Y','N');
错误:IN SQL
Conversion failed when converting the varchar value 'Y' to data type int.
两者在两个表列是相同的数据类型仅(varchar)
的。
这是
变化
0
(INT
)到'0'
(String
)'ELSE 0',让你的麻烦。更改为'ELSE'0''来修复错误。 – HoneyBadger这是因为你的else是一个int,所以它会将所有事情都隐式转换为int,因为所有的值必须是相同的数据类型。为什么不简单地删除其他?无论如何你都不可能得到那个代码。 –
@SeanLange,如果loc loc为NULL,你可以到达ELSE# – HoneyBadger