在x上与y相比。

  • x是否更好地符合sql标准? [主观歉意]
  • 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语句。

    两者的完全相同相同。

    SQL Server中也有ISNULL(与其他DBMS有所不同),但这实际上是一种非标准功能,实际上比COALESCE受到更多限制。

    10-05 21:38