Как сопоставить значения NULL с другими значимыми значениями

Резюме: в этой статье вы научитесь отображать значения NULL в другие значимые значения.

Dr.EFCodd, который является создателем реляционной модели для базы данных, представил эту концепцию NULL в теории реляционных баз данных. Согласно Dr.EFCodd, NULL означает неизвестное значение или недостающая информацию.

MySQL также поддерживает NULL, которые представляют концепцию отсутствующей или неприменимой информации.

В таблице базы данных вы храните данные, которые содержат значения NULL. Когда вы предоставляете данные пользователям в форме отчетов, показывать NULL значения не имеет смысла.

Чтобы сделать отчеты более читабельными и понятными, необходимо отображать значения NULL в виде других значений, таких как неизвестные, отсутствующие или недоступные (нет данных). Для этого вы можете использовать функцию IF.

Синтаксис функции IF следующий:

IF(exp,exp_result1,exp_result2);

 

Если значение exp имеет TRUE (когда exp <> 0 и exp <> NULL), то функция IF возвращает значение из в противном случае exp_result1 возвращает значение exp_result2.

Возвращается значение функции IF может быть строка или число, в зависимости от выражений exp_result1 и exp_result2.

Давайте потренируемся с некоторыми примерами, чтобы лучше понять.

Мы будем работать с таблицей customers в примере базы данных.

Ниже приведены частичные данные в таблице customers, которая включает в себя customername state и country:

SELECT

customername, state, country

FROM

customers

ORDER BY country;

 

Значения состояния недоступны для некоторых клиентов. Вы можете использовать функцию IF для отображения значения NULL как N/A:

SELECT

customername, IF(state IS NULL, 'N/A', state) state, country

FROM

customers

ORDER BY country;

 

Помимо функции IF, MySQL предоставляет функцию IFNULL, которая позволяет NULL напрямую обрабатывать значения. Ниже приведен синтаксис функции IFNULL:

IFNULL(exp,exp_result);

 

 

Функция IFNULL возвращает значение выражения exp_result, если exp вычисляется в значение NULL, в противном случае, он возвращает значение выражения exp.

В следующем запросе функция IFNULL отображается NULL как неизвестная следующим образом:

SELECT customername,

IFNULL(state,"N/A")state,

country

FROM customers

ORDER BY country;

 

В этой статье вы узнали, как использовать функцию IF и IFNULL для отображения значений NULL на других более значимых значения для представления данных в читаемом виде.



2020-03-28T11:51:49
База данных MySQL