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.

koalesce opis sql

Wynik wartości innych niż null za pomocą Coalesce. Funkcje

Rozważ użycie funkcji Sql Coalesce:

  1. Przypisuje wskazanie dowolnej liczby argumentów (w przeciwieństwie do Isnull / Nvl / Nvl2, liczba argumentów jest ograniczona).
  2. Może akceptować podzapytania jako argument.
  3. Zwraca wynik równy pierwszy inny niż Null lub Null, jeśli nie zostanie znaleziona wartość inna niż Null.
  4. 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).
  5. 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.
  6. Funkcje Sql Coalesce są dostępne we wszystkich wiodących systemach zarządzania relacyjnymi bazami danych.

sql łączą się

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

sql funkcje koalescencyjne

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

sql łączy funkcje użytkowe

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.