Есть ли функция, эквивалентная NVL Oracle в MySQL?

Я выбираю максимум столбца из таблицы. Но есть одна проблема: если в таблице нет строк, возвращает null.

Я хочу использовать функцию, которая вернет определенное значение, если результат будет нулевым. Например, в Oracle есть функция NVL, которая дает определенное значение, если столбец равен нулю. Есть ли эквивалентная функция в MySQL?


person Community    schedule 30.08.2011    source источник


Ответы (1)


Используйте объединение:

select coalesce(column_name, 'NULL VALUE') from the_table
person Thilo    schedule 30.08.2011
comment
Это стандартная версия NVL для SQL, которая также работает в Oracle (начиная с 9i, ​​я полагаю). - person Thilo; 30.08.2011
comment
Возникает вопрос Но есть одна проблема: если в таблице нет строк, она возвращает null. Однако объединение не решает эту проблему — если строки не возвращаются, то и строки не возвращаются. Все, что он делает, это обеспечивает ненулевое значение для определенного столбца при условии, что возвращаются некоторые строки Но тогда и nvl в оракуле не делает этого :) - person Adam; 23.05.2016
comment
@Адам. Агрегатная функция max вернет одну строку (с нулевым значением в ней), даже если в таблице нет строк. Все, что делает объединение (и весь заданный вопрос), — это изменение этого нуля на значение по умолчанию. - person Thilo; 23.05.2016