我希望以下SQL statement
返回b
。
你能指出我做错了吗?
SELECT CASE WHEN ISNULL(0,'')='' THEN 'a' ELSE 'b' END
答案 0 :(得分:6)
它来自数据类型的转换。您将整数与字符
进行比较如果你跑
SELECT CASE WHEN ISNULL(CAST(0 AS VARCHAR(255)),'') = '' THEN 'a' ELSE 'b' END
你会得到b
否则''将被转换为0的整数,从而使得比较0 = 0,这是真的,因此返回'a'。
答案 1 :(得分:0)
SELECT ISNULL(0,'')
上面的查询返回值0,因此结果为'a'
将查询更改为下方,您将获得“b”
选择ISNULL时的情况('0','')=''然后''''''''''''