为什么以下简单查询在没有匹配行时返回 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/