MySQL — это СУБД с концепцией нулевых значений. В MySQL используется функция COALESCE, поскольку она возвращает первое ненулевое значение из указанной серии выражений. Если все значения столбца равны нулю, COALESCE также вернет ноль. Он работает аналогично запросу «IS NULL», оба имеют дело с значениями NULL, но разница в них обоих заключается в их поведении, запрос «IS NULL» извлекает значения NULL из таблицы, тогда как функция COALESCE дает первое ненулевое значение, если в таблице присутствует какое-либо значение NULL.
В этой статье мы объясним, что такое функция COALESCE в MySQL и как ее можно использовать, с помощью примеров.
Функция COALESCE помогает идентифицировать первое ненулевое значение из заданных данных, и если в выбранной таблице есть какое-либо нулевое значение, она вернет «null». Прежде чем перейти к пониманию примеров, давайте обсудим общий синтаксис COALESCE.
Общий синтаксис:
SELECT COALESCE (value1,value2,.....);
Чтобы понять этот синтаксис функции COALESCE, мы рассмотрим несколько примеров целых чисел.
SELECT COALESCE (1,2,3);
Поскольку нет нулевого значения, он дает первое значение среди сравниваемых значений. Если в значениях сравнения есть первое нулевое значение, тогда функция COALESCE выдаст первое значение, следующее за нулевым значением.
SELECT COALESCE (null,2,3);
Если ноль присутствует во второй позиции, тогда COALESCE должен вернуть ненулевое значение, присутствующее в первой позиции.
SELECT COALESCE (12,null,3);
Если нулевое значение присутствует в третьей позиции, тогда функция COALESCE вернет в качестве результата первое ненулевое значение.
SELECT COALESCE (121,34,null);
Теперь давайте возьмем случай, когда все значения таблицы равны нулю, выполните следующую команду:
SELECT COALESCE (null,null,null);
Из выходных данных было очищено, что если все значения равны нулю, тогда выход будет нулевым. Если мы суммируем результаты приведенных выше примеров, то мы можем сказать, что если есть список чисел, и мы должны брать значения, используя ссылку “null value”, тогда, если нулевое значение присутствует на первой позиции, функция COALESCE вернет первое ненулевое значение после нулевого значения, если нулевое значение присутствует в любой другой позиции, кроме первой, тогда функция COALESCE найдет первое ненулевое значение, которое присутствует в списке чисел, сравниваемых с помощью функции COALESCE, и если все значения равны нулю, функция COALESCE выдаст нулевое значение на выходе.
Рассмотрим таблицу с именем «Student_names» в базе данных, данные которой могут быть отображены.
SELECT * FROM Student_names;
Теперь мы хотим сравнить значения First_name, Middle_name и Last_name с помощью функции COALESCE со ссылкой на нулевое значение и вернуть результат как Name.
SELECT student_id, COALESCE (first_name, middle_name,last_name) as Name FROM Student_names;
В выводе мы видим, что при student_id = 2 пустая запись находится в Middle_name, поэтому взято имя First_name, в student_id = 3 он выбрал Middle_name, потому что нулевое значение находится в First_name, в student_id = 4, он выбирает First_name, поскольку значение NULL находится в Last_name, а в student_id = 5 все значения равны NULL, поэтому он возвращает NULL. Если все значения равны нулю, тогда он может напечатать то, что вы пишете в команде, например, мы хотим напечатать, что если все значения равны нулю, то вывести «No_name_found».
SELECT student_id, COALESCE (first_name, middle_name,last_name,”no_name_found”) as Name FROM Student_names;
Мы можем видеть из вывода, когда все значения равны нулю, он печатает текст, который мы пишем в команде, вместо того, чтобы возвращать нулевое значение.
Запрос COALESCE и IS NULL одинаковы, поскольку они работают с нулевыми значениями. Используя COALESCE, мы можем сравнить более одного столбца, где запрос «IS NULL» применим только к одному столбцу. В этой статье мы объяснили на простых примерах COALESCE, чтобы понять его работу, а затем возьмем пример таблицы, чтобы понять, как функция COALESCE работает с таблицей.