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.
conținut
Rezultat de valori non-null folosind Coalesce. caracteristici
Luați în considerare caracteristicile Sql Coalesce de utilizare:
- Atribuie o indicație a unui număr de argumente (spre deosebire de Isnull / Nvl / Nvl2, numărul de argumente în care este limitat).
- Pot accepta subcheile ca argument.
- Returnează rezultatul egal cu primul altul decât Null sau Null, dacă nu s-a găsit o altă valoare decât Null.
- 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).
- 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.
- Sql Funcțiile Coalesce sunt disponibile în toate relațiile de conducere baze de date.
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).
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 |
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.
- Cum de a construi un număr într-un grad negativ - exemple cu descrieri în Excel
- SQL distinct: descriere, exemple, proprietăți
- Instrucțiunea Select (SQL)
- Integrarea la stânga (SQL) - exemplu, descriere detaliată, erori de utilizare
- Cum se compun interogările SQL - exemple detaliate
- Formule din "Excel". Tabelul "Excel" - formule
- MySQL selectați selectați: operatorul de eșantionare
- Cum se elimină linii goale în Excel: câteva metode simple
- SQL (tipuri de date): tabel
- SQL unde: metode de aplicare și exemple
- Funcția `INDEX` din Excel: descriere, aplicație și exemple
- Ce face funcția SQL CONCAT?
- Cum se calculează un modul în Excel
- Funcția de creare a unui tabel în SQL - Crearea tabelului
- Funcția de tabulare: cum se scrie un program?
- Cum se conectează la webcam-ul altcuiva: descriere pas cu pas, recomandări și caracteristici
- Crearea pas cu pas a unui tabel SQL
- Printf C: descriere, formatare, exemple
- Funcția de sumare în SQL: SUM
- Declarați SQL: descriere. Transact-SQL
- Practica de utilizare a funcției MySQL count