什么相当于MySQL中的MS Access中的Nz函数? Nz是SQL标准吗?

时间:2008-10-21 20:11:57

标签: sql mysql database ms-access

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

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

Nz函数的语法是:

Nz ( variant, [ value_if_null ] )

5 个答案:

答案 0 :(得分:11)

COALESCE()函数执行您所描述的内容。它是标准SQL,应该在所有SQL数据库中都受支持。

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

答案 1 :(得分:3)

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

答案 2 :(得分: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 :(得分:0)

也许知道MS Access NZ()函数实际上做了什么会有所帮助(在回答完全无效的建议之前)。 NZ()函数测试Null并用空字符串,零或任选的用户输入的值替换Null。

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

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

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

答案 4 :(得分:0)

请查看null安全操作符< =>

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