MySQL相当于Microsoft Access中的Nz
函数是什么? Nz
是SQL标准吗?
在Access中,Nz
函数允许您在变量为null时返回值。 Source
Nz
函数的语法是:
Nz ( variant, [ value_if_null ] )
答案 0 :(得分:11)
COALESCE()
函数执行您所描述的内容。它是标准SQL,应该在所有SQL数据库中都受支持。
IFNULL()
函数不是标准SQL。只有部分品牌的数据库支持此功能。
答案 1 :(得分:3)
您可能希望查看IFNULL
或COALESCE
。如果我没记错的话,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()函数就是你要找的。 p>
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