Відповіді:
coalesceпідтримується як в Oracle, так і в SQL Server і виконує по суті ту ж функцію, що nvlі в isnull. (Є кілька важливих відмінностей, coalesceможна взяти довільну кількість аргументів і повертає перший ненульовий. Тип повернення isnullвідповідає типу першого аргументу, що не відповідає дійсності coalesceпринаймні на SQL Server.)
COALESCE, яка має одну важливу перевагу над NVL: вона робить ярлик оцінки, тоді як NVLзавжди оцінює обидва параметри. Порівняйте COALESCE(1,my_expensive_function)з NVL(1,my_expensive_function).
COALESE()функція чудова, і про неї можна прочитати в MSDOC> COALESCE - цей самий синтаксис працює і в Oracle. Якщо дані мають порожні рядки замість NULLS вам може знадобитися що - щось на зразок цього: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
Замість ISNULL()використання NVL().
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL / SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
Також використовуйте NVL2як нижче, якщо ви хочете повернути інше значення з field_to_check:
NVL2( field_to_check, value_if_NOT_null, value_if_null )
Використання: ORACLE / PLSQL: NVL2 FUNCTION
Ви можете скористатися умовою if x is not null then.... Це не функція. Тут також NVL()є хороший приклад використання: NVL функція ref .
COALESCEANSI, підтримується Postgres, MySQL ... Єдиний застереження полягає в тому, що він не обов'язково виконує так швидко, як рідний синтаксис.