sql-server - ISNULL() 返回 NULL

标签 sql-server t-sql sql-server-2012 isnull

为什么以下简单查询在没有匹配行时返回 null(<Condition> 不满足任何行)?

SELECT ISNULL(MyField, 0) FROM [MyTable] WHERE <Condition>

我已经尝试过COALESCE()也有类似的结果。当没有匹配的行时如何返回零?

最佳答案

如果您希望条件将结果集减少到 0 或 1 行,那么这将起作用:

SELECT ISNULL((SELECT MyField FROM [MyTable] WHERE <Condition>),0)

也就是说,创建一个不带 FROM 子句的外部查询(因此始终只生成一行),然后使用子查询获取 0 或 1 行实际数据。

关于sql-server - ISNULL() 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27813871/

相关文章:

sql - 我可以添加没有 DEFAULT 值的非空列吗

sql-server - SQL Server CASE函数的不同格式

sql - T-SQL;每天从表中重复一个时间段的值

SQL Server - 在 WHERE 子句中使用谓词的替代方法

sql-server - SQL MERGE 与变量

sql-server - sql :need to change constraint on rename table?

sql - 如何使用 SQL Server 对 SQL Server 查询进行基准测试

sql-server - list-distinct 中的最高值

sql-server - 将数据插入 SQL Server 中的表时出错

sql-server - OLEDE错误: Login failed for user 'DOMAIN\ComputerName$' .;28000