Coalesce sql: opis, użycie, przykłady
Podczas kompilowania zapytań SQL,Sytuacja podczas wybierania danych, należy porównać wartości kilku kolumn i wypisać jeden z nich, który zawiera dane (nie puste). Ten problem jest doskonale rozwiązany przez wyrażenie Coalesce. W tym artykule znajdziesz pełny opis wyrażenia Coalesce sql, opis cech użytkowych, a także przykłady.
Wynik wartości innych niż null za pomocą Coalesce. Funkcje
Rozważ użycie funkcji Sql Coalesce:
- Przypisuje wskazanie dowolnej liczby argumentów (w przeciwieństwie do Isnull / Nvl / Nvl2, liczba argumentów jest ograniczona).
- Może akceptować podzapytania jako argument.
- Zwraca wynik równy pierwszy inny niż Null lub Null, jeśli nie zostanie znaleziona wartość inna niż Null.
- Sql Coalesce może być użyty w klauzuli Select, aby wybrać niepustą wartość, a także w Gdzie określić, że zestaw kolumn z pustymi wartościami jest niedozwolony (/ dozwolony).
- To wyrażenie jest równoważne z zastosowaniem wyrażeniaCase, egzaminator konsekwentnie każdy argument, pod warunkiem Kiedy argument1 nie jest null następnie argument1. W rzeczywistości, łączą to „skrót”, przeznaczony dla łatwości użytkowania, aw wielu bazy danych optymalizujące zapytań przepisać łączą ekspresyjny Case.
- Funkcje Sql Coalesce są dostępne we wszystkich wiodących systemach zarządzania relacyjnymi bazami danych.
Składnia Coalesce
Wszyscy, którzy przynajmniej raz skorzystali z Coalesce'akompilowanie zapytań sql, wie, że składnia tego wyrażenia jest niezwykle prosta. Wystarczy podać w nawiasach argumenty sprawdzane na Null, oddzielone przecinkami. Jeśli założymy, że argumenty mają nazwy arg1, arg2, ... argN, to składnia Coalesce będzie wyglądać następująco:
Koalescencja (arg1, arg2, ... argN).
Przygotujmy kilka tabel do badania mechanizmu tego wyrażenia.
Przygotowywanie tabel
Aby lepiej zrozumieć opis Coalesce SQL, utworzymy w bazie danych dwie tabele zawierające informacje o obiektach nieruchomości.
Pierwsza tablica obszaru powinna zawierać nazwy obiektów nieruchomości i ich powierzchni. Obszar można udoskonalić (area_yt) lub zadeklarować (area_decl).
id | nazwa_obiektu | area_yt | area_decl |
1 | Budynek 1 | 116,2 | 114 |
2 | Niedokończony obiekt budowlany 1 | 568 | |
3 | Pokój 1 | 64,7 | |
4 | Pokój 2 | 34,2 | |
5 | Działka 1 | 112 | 111,6 |
6 | Obiekt 1 | ||
7 | Pokoje 3 | 27,9 | |
8 | Budowa 2 | 37,2 | 36,4 |
9 | Budynek 2 |
Druga tabela jest basic_characteristiczawiera informacje o głównej charakterystyce nieruchomości - rozszerzenie, głębokość, powierzchnia, zasięg, wysokość.
id | nazwa_obiektu | Rozszerzenie | Głębokość | Obszar | Zakres | Wysokość |
1 | Budynek 1 | 892,4 | 30 | |||
2 | Budynek 2 | 48 | ||||
3 | Obiekt 1 | 164,7 | ||||
4 | Działka 1 | |||||
5 | Pokój 1 | 23,6 | ||||
6 | Pokój 2 | 34,7 | ||||
7 | Pokoje 3 | 19,8 |
Zbadaliśmy składnię Coalesce sql, opis, cechy użycia i przeszliśmy bezpośrednio do przykładów.
Przykłady użycia
Składnia wyrażenia Coalesce jest bardzo prosta,ale ważne jest, aby pamiętać, że wynikiem polecenia będzie PIERWSZA niepusta wartość znaleziona z listy argumentów. Ta uwaga jest bardzo ważna, więc argumenty w wyrażeniu muszą być uszeregowane według ważności. Najprostszy sposób na zrozumienie zasady tabeli obszaru. Wprowadź żądanie, które wybiera nazwę właściwości, a także wartość obszaru:
SELECT Area.id, Area.object_name, coalesce (Area.area_yt, Area.area_decl) Z okolicy |
I uzyskaj wynik:
id | nazwa_obiektu | Połącz się |
1 | Budynek 1 | 116,2 |
2 | Niedokończony obiekt budowlany 1 | 568 |
3 | Pokój 1 | 64,7 |
4 | Pokój 2 | 34,2 |
5 | Działka 1 | 112 |
6 | Obiekt 1 | |
7 | Pokoje 3 | 27,9 |
8 | Budowa 2 | 37,2 |
9 | Budynek 2 |
Dla obiektów "Budynek 1", "Działka 1" i"Konstrukcja 2" została wypełniona obydwoma wartościami obszaru, ale priorytetem był obszar rafinowany, ponieważ najpierw wskazaliśmy go na liście argumentów. Wyrażenie Coalesce znalazło pierwszą niepustą wartość i wyprowadziło ją, zatrzymując dalsze przeglądanie argumentów. Ta konstrukcja zapytania jest poprawna, ponieważ określony obszar jest bardziej szczegółowy niż zadeklarowany. Jeśli określimy obszar zadeklarowany jako pierwszy argument, to jeśli to pole tabeli będzie pełne, będzie miało priorytet.
Oprócz używania w Select, bardzo częstowyrażenie Coalesce jest stosowane z klauzulą Where. Pozwala na wycięcie z wyniku tych linii, w których lista pól jest pusta (lub odwrotnie, zawierają tylko te wartości w wyniku, w którym lista pól nie jest wypełniona). Ta sytuacja jest wszędzie: na przykład, w momencie rejestracji nowego pracownika, tylko podstawowe informacje o pracowniku zostały wprowadzone do bazy danych, a szczegółowe informacje pozostały "na później". Stopniowo "luki" unoszą się - albo przed czekiem, albo wysyłając pracownika na urlop / podróż służbową / zwolnienie chorobowe.
Wybierz z tabeli główne cechy obiektów nieruchomości, które nie mają żadnej z wartości charakterystycznych:
SELECT id, nazwa_obiektu FROM Basic_characteristic Gdzie koalescencja (rozszerzenie, głębokość, powierzchnia, zakres, wysokość) jest zerowa |
W przypadku tego zapytania w tabeli znajduje się jedno dopasowanie - obiekt "Działka 1", w którym wszystkie pola z cechami są puste:
id | nazwa_obiektu |
4 | Działka 1 |
Mamy nadzieję, że nasz szczegółowy opis SQL Coalesce pomógł Ci zrozumieć wszystkie funkcje korzystania z tego wyrażenia, a także poradzić sobie z ważnymi niuansami.