ISNULL的CASE声明(0,'')

时间:2014-05-30 10:49:29

标签: sql-server tsql case coalesce isnull

我希望以下SQL statement返回b

你能指出我做错了吗?

SELECT CASE WHEN ISNULL(0,'')='' THEN 'a' ELSE 'b' END

2 个答案:

答案 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','')=''然后''''''''''''