本文介绍了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更有效和/或标准的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 09:58