本文介绍了COALESCE或CASE更有效和/或标准的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
相对于y的x而言.
- x是否更好地符合sql标准? [主观致歉]
- x比y更有效吗?
- 或者这些脚本是完全不同的并且可以在不同的上下文中使用吗?
x
SELECT *
FROM a
INNER JOIN b ON
COALESCE(b.columntojoin, b.alternatecolumn) = a.columntojoin
y
SELECT *
FROM a
INNER JOIN b ON
(case when b.columntojoin is null then b.alternatecolumn else b.columntojoin end) = a.columntojoin
推荐答案
COALESCE
本质上是一个简写的CASE
语句.
COALESCE
is essentially a shorthanded CASE
statement.
两者完全相同.
SQL Server中也有ISNULL
(在其他DBMS中有所不同),但这实际上是非标准功能,实际上比COALESCE
受限制.
There is also ISNULL
in SQL Server (differs in other DBMSs), but that's actually a non-standard feature and is actually more limited that COALESCE
.
这篇关于COALESCE或CASE更有效和/或标准的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!