Odpowiedzi:
coalescejest obsługiwany zarówno w Oracle, jak i SQL Server i zasadniczo pełni tę samą funkcję co nvli isnull. (Jest kilka ważnych różnic, coalescemoże przyjąć dowolną liczbę argumentów i zwraca pierwszy niezerowy. Typ zwracany dla jest isnullzgodny z typem pierwszego argumentu, co nie jest prawdą coalesce, przynajmniej na SQL Server).
COALESCE, co ma jedną ważną zaletę NVL: przeprowadza ocenę skrótów, podczas gdy NVLzawsze ocenia oba parametry. Porównaj COALESCE(1,my_expensive_function)z NVL(1,my_expensive_function).
COALESE()funkcja jest świetna i możesz o niej poczytać na MSDOC> COALESCE - ta sama składnia działa na Oracle. Jeśli dane ma puste ciągi zamiast wartości null może trzeba coś takiego: COALESCE(TRIM(Tbl.myField1), TRIM(Tbl.myField2)) AS "myNewField".
Zamiast ISNULL()używać NVL().
T-SQL:
SELECT ISNULL(SomeNullableField, 'If null, this value') FROM SomeTable
PL / SQL:
SELECT NVL(SomeNullableField, 'If null, this value') FROM SomeTable
Użyj również NVL2jak poniżej, jeśli chcesz zwrócić inną wartość z field_to_check:
NVL2( field_to_check, value_if_NOT_null, value_if_null )
Użycie: ORACLE / PLSQL: FUNKCJA NVL2
Możesz użyć warunku if x is not null then.... To nie jest funkcja. Jest też NVL()funkcja, dobry przykład użycia tutaj: funkcja NVL ref .
COALESCEto ANSI, obsługiwane przez Postgres, MySQL ... Jedynym zastrzeżeniem jest to, że niekoniecznie działa tak szybko, jak natywna składnia.