Jaki jest odpowiednik Oracle funkcji IsNull () programu SQL Server?


Odpowiedzi:


131

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).


9
+1: COALESCEto ANSI, obsługiwane przez Postgres, MySQL ... Jedynym zastrzeżeniem jest to, że niekoniecznie działa tak szybko, jak natywna składnia.
Kucyki OMG

17
+1 dla 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).
Jeffrey Kemp,

Ta 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".
SherlockSpreadsheets

108

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

2
Odpowiada wprost na pytanie.
Gary Huckabone


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.