Podsumowanie: w tym samouczku dowiesz się o funkcji PostgreSQL COALESCE, która zwraca pierwszy argument inny niż null. Dowiesz się, jak zastosować tę funkcję w instrukcji SELECT, aby efektywnie obsługiwać wartości null.
składnia funkcji PostgreSQL COALESCE
składnia funkcjiCOALESCE
jest następująca:
Code language: SQL (Structured Query Language) (sql)
COALESCE
funkcja akceptuje nieograniczoną liczbę argumentów. Zwraca pierwszy argument, który nie jest null., Jeśli wszystkie argumenty są null, funkcjaCOALESCE
zwróci null.
COALESCE
funkcja ocenia argumenty od lewej do prawej, dopóki nie znajdzie pierwszego argumentu innego niż null. Wszystkie pozostałe argumenty z pierwszego argumentu non-null nie są oceniane.
COALESCE
funkcja zapewnia taką samą funkcjonalność jakNVL
lubIFNULL
funkcja dostarczana przez standard SQL. MySQL posiada funkcję IFNULL, natomiast Oracle udostępnia funkcję NVL
.,
zobacz następujące przykłady:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
często używamy funkcjiCOLAESCE
do zastępowania wartości domyślnych wartości null podczas zapytań o dane. Na przykład chcemy wyświetlić fragment z postu na blogu, jeśli fragment nie jest dostarczony, możemy użyć pierwszych 150 znaków treści postu., Aby to osiągnąć, możemy użyć funkcji COALESCE
w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
PostgreSQL COALESCE przykład
przyjrzyjmy się przykładowi użycia funkcjiCOALESCE
. Najpierw tworzymy tabelę o nazwie items używając instrukcji CREATE TABLE w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
w items
table:
- id: klucz główny identyfikujący element w tabeli items.
- produkt: Nazwa produktu.
- cena: cena produktu.,
- Rabat: Rabat na produkt.
Po Drugie, wstawiamy kilka rekordów do tabeli elementów za pomocą polecenia INSERT w następujący sposób:
Po Trzecie, sprawdzamy ceny netto produktów za pomocą następującego wzoru:
Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Jeśli spojrzysz na czwarty wiersz, zauważysz, że cena netto produktu D
jest równa NULL, co wydaje się niepoprawne., Problem polega na tym, że zniżka na produkt D
jest równa null, dlatego gdy weźmiemy wartość null do obliczenia ceny netto, PostgreSQL zwraca null.
aby uzyskać odpowiednią cenę, musimy założyć, że jeśli rabat jest zerowy, to jest zerowy., Następnie możemy użyć funkcji COALESCE
w następujący sposób:
Code language: SQL (Structured Query Language) (sql)
teraz Cena netto produktu D
jest 500
ponieważ używamy zero zamiast wartości NULL, gdy obliczamy cenę netto.
poza użyciem funkcjiCOALESCE
, możesz użyć wyrażenia CASE do obsługi wartości null w tym przypadku. Zobacz poniższe zapytanie, które używa wyrażenia CASE
, aby uzyskać ten sam wynik powyżej.,
Code language: SQL (Structured Query Language) (sql)
w powyższym zapytaniu mówimy, że jeśli rabat jest null, to użyj zero (0) w przeciwnym razie użyj wartości Rabatu do wyrażenia, które oblicza cenę netto.
pod względem wydajności, COALESCE
funkcja i wyrażenie CASE są takie same. PreferujemyCOALESCE
funkcję niżCASE
wyrażenie, ponieważCOALESCE
funkcja sprawia, że zapytanie jest krótsze i łatwiejsze do odczytania.
w tym samouczku nauczyłeś się używać funkcji COALESCE
do zastępowania wartości null w zapytaniu.,
- czy ten tutorial był pomocny ?
- YesNo
Leave a Reply