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

标签 sql-server tsql case coalesce isnull

我希望以下 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/

相关文章:

sql-server - SSMS v18.8 用空格替换非打印字符

sql - TSQL - 如何格式化查询结果?

sql - 在 GROUP BY 中使用自定义聚合函数?

c# - 使用 Case/Switch 和 GetType 来确定对象

按年份的 SQL 查询结果

sql - 是否可以反编译和读取 SSIS 包代码?

sql - 如何检查哪个数据库存在并在函数中使用它?

sql-server - 跨多个利率计算利息

SQL:删除值已存在的行

php - 是休息; die() php 之后需要