我希望以下 SQL 语句
返回 b
。
你能指出我做错了什么吗?
SELECT CASE WHEN ISNULL(0,'')='' THEN 'a' ELSE 'b' END
最佳答案
它来自数据类型的转换。您将整数与字符进行比较
如果你跑
SELECT CASE WHEN ISNULL(CAST(0 AS VARCHAR(255)),'') = '' THEN 'a' ELSE 'b' END
你会得到b
否则 '' 将被转换为 0 的整数,从而使比较 0 = 0 为真并因此返回 'a'。
关于sql-server - 带有 ISNULL(0 ,'') 的 CASE 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23952785/