就 x 与 y 而言。
X
SELECT *
FROM a
INNER JOIN b ON
COALESCE(b.columntojoin, b.alternatecolumn) = a.columntojoin
是
SELECT *
FROM a
INNER JOIN b ON
(case when b.columntojoin is null then b.alternatecolumn else b.columntojoin end) = a.columntojoin
最佳答案
COALESCE
本质上是一个人手不足的CASE
陈述。
两者都是正好相同。
还有ISNULL
在 SQL Server 中(在其他 DBMS 中不同),但这实际上是一个非标准功能,实际上比 COALESCE
更受限制。 .
关于sql - COALESCE 或 CASE 更高效和/或标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523000/