microsoft - mysql odbc 8.0 ansi driver



MySQL中的MS Access中的Nz函數是什麼? Nz是一個SQL標準嗎? (4)

COALESCE()函數完成你所描述的任務。 它是標準的SQL,它應該在所有SQL數據庫中受支持。

IFNULL()函數不是標準的SQL。 只有一些品牌的數據庫支持這個功能。

什麼是Microsoft Access中的Nz函數的MySQL等價物? Nz是一個SQL標準嗎?

在Access中, Nz函數允許您在變量為null時返回一個值。 資源

Nz函數的語法是:

Nz ( variant, [ value_if_null ] )

也許知道什麼MS Access NZ()函數實際上會有所幫助(在回答完全無效的建議之前)。 NZ()函數用於測試Null,用空字符串替換Null,用零輸入值或用戶輸入的值。

COALESCE甚至沒有接近,實際上它返回一個Null,如果沒有空值'List ???'

IFNULL()函數是你正在尋找的。

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


正如IFNULL那樣,COALESCE只是做OP的要求:

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)

如果這些值都沒有設置值(都為null),則每個值都將返回0(零)。

IFNULL(相當無意義)更快。 在干擾IFNULL和COALESCE問題之前,可能還有其他更好的事情要在您的查詢中進行優化。 如果你有多個東西要檢查,使用COALESCE。 如果您只有一個值來檢查,請使用IFNULL。






ms-access