【问题标题】:What is equivalent of the Nz Function in MS Access in MySQL? Is Nz a SQL standard?什么相当于 MySQL 中 MS Access 中的 Nz 函数? Nz 是 SQL 标准吗?
【发布时间】:2010-09-18 09:48:24
【问题描述】:

什么是 MySQL 等效于 Microsoft Access 中的 Nz 函数? Nz 是 SQL 标准吗?

在 Access 中,Nz 函数允许您在变量为空时返回一个值。 Source

Nz 函数的语法是:

Nz ( variant, [ value_if_null ] )

【问题讨论】:

标签: sql mysql database ms-access


【解决方案1】:

COALESCE() 函数符合您的描述。它是标准 SQL,应该在所有 SQL 数据库中都支持。

IFNULL() 函数不是标准 SQL。只有部分品牌的数据库支持此功能。

【讨论】:

    【解决方案2】:

    COALESCE 正是 OP 要求的,IFNULL 也是如此:

    SELECT Nz(MightBeNullVar, 0) FROM ...  (MS Access version)
    SELECT COALESCE(MightBeNullVar, 0) FROM ... (MySQL version)
    SELECT IFNULL(MightBeNullVar, 0) FROM ... (MySQL version)
    

    不同的是 COALESCE 可以搜索多个变量并返回第一个非空变量:

    SELECT COALESCE(MightBeNullVar, MightAlsoBeNullVar, CouldBeNullVar, 0) FROM ... (MySQL version)
    

    如果没有一个值具有设定值(为空),则每一个都将返回 0(零)。

    IFNULL 更快(毫无意义)。在处理 IFNULL 与 COALESCE 问题之前,您的查询中可能还有其他更好的东西需要优化。如果您要检查多项内容,请使用 COALESCE。如果您只有一个值要检查,请使用 IFNULL。

    【讨论】:

      【解决方案3】:

      您可能想查看IFNULLCOALESCE。如果我没记错的话,IFNULL 适用于 MySQL。

      【讨论】:

      • IFNULL 相当于 mysql。
      【解决方案4】:

      看看 null 安全运算符

      也许会有所帮助: http://dev.mysql.com/doc/refman/5.5/en/comparison-operators.html#operator_equal-to

      【讨论】:

        【解决方案5】:

        也许了解 MS Access NZ() 函数的实际作用会有所帮助(在回答完全无效的建议之前)。 NZ() 函数测试 Null 并将 Null 替换为空字符串、零或用户输入的可选值。

        COALESCE 甚至没有接近,事实上,如果'List???'中没有任何 Null 值,它会返回 Null

        IFNULL() 函数就是你要找的。​​p>

        http://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html

        【讨论】:

        • COALESCE 的想法是让最后一个值成为默认的非空值:COALESCE(MightBeNull, MightAlsoBeNull, CouldBeNull, 'DefaultValue') ...
        • 这里,就在这里!我可以补充一下, nz() 根本不需要列表。它可以作用于单个元素以消除其中的任何空值,并返回零或“”。这是处理空值的好工具。 Coalesce 不会做同样的事情,最重要的是,如果与 2 个参数一起使用,坦率地说是冗长而笨拙的。即你不能合并(x)。但你可以 nz(x)。
        猜你喜欢
        • 2020-08-08
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-13
        • 1970-01-01
        相关资源
        最近更新 更多