Что эквивалентно функции Nz в MS Access в MySQL? Является ли Nz стандартом SQL?

Что такое эквивалент MySQL функции Nz в Microsoft Access? Является ли Nz стандартом SQL?

В Access функция Nz позволяет вернуть значение, когда вариант имеет значение null. Источник

Синтаксис для функции Nz:

Nz ( variant, [ value_if_null ] )

Ответ 1

Функция COALESCE() выполняет то, что вы описываете. Это стандартный SQL, и он должен поддерживаться во всех базах данных SQL.

Функция IFNULL() не является стандартным SQL. Только некоторые бренды баз данных поддерживают эту функцию.

Ответ 2

Вы можете посмотреть IFNULL или COALESCE. Если я правильно помню, IFNULL работает для MySQL.

Ответ 3

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.

Ответ 4

Возможно, зная, какая функция MS Access NZ() действительно будет полезной (перед ответом на совершенно неверные предложения). Тест функции NZ() для Null и заменяет нуль пустой строкой, ноль или необязательно значение, которое вводит пользователь.

COALESCE даже не приближается, на самом деле он возвращает Null, если нет никаких значений Null в "List???"

Функция IFNULL() - это то, что вы ищете.

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