带有ISNULL的CASE语句(0,'')

j3r*_*own 2 t-sql sql-server case coalesce isnull

我希望以下内容SQL statement能够归来b.

你能指出我做错了什么吗?

SELECT CASE WHEN ISNULL(0,'')='' THEN 'a' ELSE 'b' END
Run Code Online (Sandbox Code Playgroud)

All*_*sen 6

它来自数据类型的转换.您将整数与字符进行比较

如果你跑

SELECT CASE WHEN ISNULL(CAST(0 AS VARCHAR(255)),'') = '' THEN 'a' ELSE 'b' END
Run Code Online (Sandbox Code Playgroud)

你将得到b
否则''将被转换为0的整数,从而使得比较0 = 0,这是真的,因此返回'a'.