sql - COALESCE 或 CASE 更高效和/或标准

标签 sql standards sql-standards

就 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陈述。

    两者都是正好相同。

    还有ISNULL在 SQL Server 中(在其他 DBMS 中不同),但这实际上是一个非标准功能,实际上比 COALESCE 更受限制。 .

    关于sql - COALESCE 或 CASE 更高效和/或标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523000/

    相关文章:

    c++ - 有符号整数和无符号整数之间的转换

    sql - WHERE 子句中的逻辑处理顺序或 SQL 标准

    sql - 交叉应用 VS STUFF 功能

    sql - Postgres 从字符串运行 SQL 语句

    sql - Grails sql 查询

    asp.net - LINQ 和使用 ListView 分页

    javascript - 浏览器是否应该将使用 javascript 伪协议(protocol) URL 输出更新的窗口视为新位置?

    C++11 标准文档成本

    sql - 普通 SQL 与方言

    SQL Server - 具有相关性的条件聚合