Задача: постановка в посте вторника.
Решение:
Функцию COALESCE я упомянул еще на прошлой недели в качестве альтернативы NVL. Однако, опрос вторника немного удивляет
Основные отличия от NVL
Функция может принимать более двух аргументов.
Используется короткозамкнутое вычисление (short-circuit evaluation), т.е. аргументы вычисляются по мере надобности.
В coalesce все аргументы должны быть одного типа. NVL - неявно преобразует тип второго аргумента к первому.
Есть особенности, см. доку
Функция относится к ANSI SQL, может быть использована в других РСУБД. NVL - чисто Оракловая поделка.
Отличия в выполнении запросов.
Согласно п.2. правильный ответ:
5 секунд.
Функция не будет вычислять ни второй, ни третий аргументы, т.к. первый аргумент не null.
Дополнительная задачка на подумать: выполнится или нет?
select nvl(10, 'abc') from dual;
—
В новом году, можно начать изучать PL/SQL с опытным наставником. Переходите на темную сторону
#решениезадачи #функции #nvl #coalesce