ANSI Standard SQL zapewnia nam funkcję ISNULL, aby zastąpić wszystkie wartości zerowe określoną wartością zamiennika.
Chociaż funkcja jest zdefiniowana jako część ANSI SQL, niektóre bazy danych, takie jak PostgreSQL. Możesz jednak użyć funkcji Coalesce (), aby osiągnąć tę samą funkcjonalność.
Składnia funkcji
Możemy wyrazić składnię funkcji ISNULL, jak pokazano poniżej:
Isnull (wyrażenie, zastępstwo)Wyrażenie odnosi się do dowolnego wyrażenia, które można sprawdzić pod kątem wartości zerowych.
Wymiana odnosi się do wartości, która ma zostać zwrócona, jeśli wyrażenie jest zerowe.
Należy pamiętać, że typ parametru zastępczego musi być zamienny na typ parametru wyrażenia.
Wynika to z faktu, że funkcja wykona ukrytą obsadę typów do funkcji parametru wyrażenia.
Jeśli wyrażenie oceni do NULL, funkcja zwróci wartość wymiany; W przeciwnym razie zwraca wartość ekspresji.
Przykład 1
Rozważ poniższy przykład, który używa funkcji isNull z typem numerycznym:
WYBIERAĆPonieważ wyrażenie w powyższym przykładzie jest null, funkcja zwróci wartość wymiany 0.
Możesz również wykonać to samo pod względem wartości nieerowej, jak pokazano:
WYBIERAĆPonieważ wyrażenie nie jest zerowe, funkcja zwróci wartość wyrażenia.
Używanie isNull w PostgreSQL
Zauważysz, że PostgreSQL nie ma funkcji isNull. Możemy jednak użyć funkcji Coalesce () jako zamiennika.
Składnia funkcji jest jak pokazana:
Coalesce (ekspresja, wymiana)Możemy uruchomić przykład, jak pokazano:
Wybierz Coalesce (NULL, 0);Powinno to zwrócić 0, jak pokazano:
Ten sam przypadek dotyczy funkcji nie-zerowej, jak pokazano:
WYBIERAĆPowyższe zapytanie powinno zwrócić wartość wyrażenia, jak pokazano:
IfNull - BigQuery
W bazach danych, takich jak BigQuery, funkcja ISNULL jest przemianowana na ifNull. Funkcjonalność jest taka sama jak funkcja isNull.
Składnia jest jak pokazana:
IfNull (expr, zamiennik);Przykładowe użycie:
Wybierz ifNull (NULL, 0) w wynikuPowyższe powinno powrócić:
+--------+Wniosek
Korzystając z tego przewodnika, zrozumiałeś, jak korzystać z funkcji isNull w standardowym SQL. Nauczyłeś się również, jak używać funkcji Coalesce jako alternatywy dla funkcji ISNULL.
Dziękuje za przeczytanie!!