Coalesce sql: descriere, utilizare, exemple

Atunci când compilați interogări SQL, se întâmplă adesea ca atunci când selectați date, trebuie să comparați valorile mai multor coloane și să ieșiți pe unul dintre ele care conține date (nu goale). Această problemă este rezolvată perfect de expresia Coalesce. În acest articol veți găsi o descriere completă a expresiei Coalesce sql, o descriere a caracteristicilor de utilizare, precum și exemple.

coalesce sql descriere

Rezultat de valori non-null folosind Coalesce. caracteristici

Luați în considerare caracteristicile Sql Coalesce de utilizare:

  1. Atribuie o indicație a unui număr de argumente (spre deosebire de Isnull / Nvl / Nvl2, numărul de argumente în care este limitat).
  2. Pot accepta subcheile ca argument.
  3. Returnează rezultatul egal cu primul altul decât Null sau Null, dacă nu s-a găsit o altă valoare decât Null.
  4. Sql Coalesce poate fi folosit în clauza Select pentru a selecta o valoare non-empty și, de asemenea, în Unde să specificați că un set de coloane cu valori goale nu este permis (/ permis).
  5. Această expresie este echivalentă cu utilizarea expresiei Case, care verifică fiecare argument succesiv pentru condiție Când argumentul1 nu este nul, atunci argument1. De fapt, Coalesce este o "comandă rapidă" concepută pentru ușurința utilizării, iar în multe optimizatori de interogări DBMS rescrie expresia Coalesce pe caz.
  6. Sql Funcțiile Coalesce sunt disponibile în toate relațiile de conducere baze de date.

sql coalesce

Sintaxa Coalesce

Oricine a folosit vreodată Coalesce pentru a compila interogări SQL, știe că sintaxa acestei expresii este extrem de simplă. Este suficient să specificați în paranteze argumente, verificate pe Null, separate prin virgule. Dacă presupunem că argumentele au arg1, arg2, hellip- argN, atunci sintaxa Coalesce va arăta astfel:

Coalesce (arg1, arg2, hellip- argN).

funcții de coalesce SQL

Să pregătim câteva mese pentru a studia mecanismul acestei expresii.

Pregătirea meselor

Pentru a înțelege mai bine descrierea Coalesce sql, vom crea în baza de date două tabele care conțin informații despre obiecte imobile.

Prima masă de suprafață trebuie să conțină numele obiectelor imobile și zona lor. Zona poate fi rafinată (area_yt) sau declarată (area_decl).

id

nume_obiect

area_yt

area_decl

1

Clădirea 1

116.2

114

2

Obiectul de construcție neterminat 1

568

3

Cameră 1

64.7

4

Cameră 2

34,2

5

Parcelă de teren 1

112

111.6

6

Facilitatea 1

7

Camere 3

27.9

8

Construcția 2

37.2

36,4

9

Clădirea 2

A doua masă Basic_characteristic let conține informații despre principala caracteristică a proprietății - Extension, Depth, Area, Scope, Height.

id

nume_obiect

extensie

adâncime

zonă

domeniu

înălțime

1

Clădirea 1

892.4

30

2

Clădirea 2

48

3

Facilitatea 1



164,7

4

Parcelă de teren 1

5

Cameră 1

23.6

6

Cameră 2

34.7

7

Camere 3

19.8

Am examinat sintaxa de la Coalesce sql, descrierea, trăsăturile de utilizare și continuăm direct cu exemplele.

Exemple de utilizare

Sintaxa expresiei Coalesce este extrem de simplă, dar este important să rețineți că rezultatul comenzii va fi valoarea FIRST non-empty găsită din lista de argumente. Această remarcă este foarte importantă, astfel încât argumentele din expresie trebuie să fie plasate în ordinea importanței. Cea mai ușoară modalitate de a înțelege principiul tabelului de zonă. Faceți o solicitare care selectează numele proprietății, precum și valoarea zonei:

SELECTați Area.id, Area.object_name, coalesce (Area.area_yt, Area.area_decl)

Din zona

Și obțineți rezultatul:

id

nume_obiect

coaliza

1

Clădirea 1

116.2

2

Obiectul de construcție neterminat 1

568

3

Cameră 1

64.7

4

Cameră 2

34,2

5

Parcelă de teren 1

112

6

Facilitatea 1

7

Camere 3

27.9

8

Construcția 2

37.2

9

Clădirea 2

Pentru obiectele "Clădirea 1", "Parcela 1" și "Construcția 2" s-au umplut ambele valori ale zonei, dar în prioritate a fost rafinată zona, deoarece am indicat-o mai întâi în lista de argumente. Expresia Coalesce a găsit prima valoare non-goală și a dedus-o, oprindu-i în continuare vizualizarea argumentelor. Această construcție a interogării este corectă, deoarece zona specificată este mai specifică decât cea declarată. Dacă specificăm zona declarată ca fiind primul argument, atunci dacă acest câmp tabel este plin, ar fi în prioritate.

În plus față de utilizarea în Select, foarte des expresia Coalesce este aplicată cu clauza Where. Acesta permite să taie din rezultatul rândurilor în care valorile listei de câmpuri goale (sau invers, pentru a include în rezultat numai acele valori în cazul în care lista câmpul este gol). Această situație se găsește peste tot: de exemplu, în întreprindere cu proiectarea unui nou angajat la baza de date numai informații de bază despre aceasta, și umplerea detaliile stânga „pentru mai târziu“. Treptat, "golurile" plutesc - fie înainte de cec, fie când trimiteți angajatul în concediu / călătorie de afaceri / concediu medical.

Alegeți din tabel cu principalele caracteristici ale obiectelor imobile care nu au nici una din valorile caracteristice:

SELECT id, object_name

Din caracteristica Basic_characteristic

În cazul în care coalesce (extensie, adâncime, zonă, domeniu, înălțime) este nulă

Pentru această interogare, există o potrivire în tabel - obiectul "Parcelă 1", în care toate câmpurile cu caracteristici sunt goale:

id

nume_obiect

4

Parcelă de teren 1

sql coalesce caracteristici de utilizare

Sperăm că descrierea noastră detaliată a Coalesce vă va ajuta să înțelegeți toate caracteristicile utilizării acestei expresii, precum și să rezolvați nuanțe importante.

Distribuiți pe rețelele sociale:

înrudit
SQL distinct: descriere, exemple, proprietățiSQL distinct: descriere, exemple, proprietăți
Instrucțiunea Select (SQL)Instrucțiunea Select (SQL)
Integrarea la stânga (SQL) - exemplu, descriere detaliată, erori de utilizareIntegrarea la stânga (SQL) - exemplu, descriere detaliată, erori de utilizare
Cum se compun interogările SQL - exemple detaliateCum se compun interogările SQL - exemple detaliate
Formule din "Excel". Tabelul "Excel" - formuleFormule din "Excel". Tabelul "Excel" - formule
MySQL selectați selectați: operatorul de eșantionareMySQL selectați selectați: operatorul de eșantionare
Cum se elimină linii goale în Excel: câteva metode simpleCum se elimină linii goale în Excel: câteva metode simple
SQL (tipuri de date): tabelSQL (tipuri de date): tabel
SQL unde: metode de aplicare și exempleSQL unde: metode de aplicare și exemple
Funcția `INDEX` din Excel: descriere, aplicație și exempleFuncția `INDEX` din Excel: descriere, aplicație și exemple
» » Coalesce sql: descriere, utilizare, exemple