Ajutați dezvoltarea site -ului, împărtășind articolul cu prietenii!

Introducere în SQL COALESCE

COALESCE este o funcție predefinită încorporată Structured Query Language (SQL) care este utilizată pentru a gestiona valorile NULL din înregistrările de date. Evaluează un set sau o listă de parametri de intrare într-o manieră secvențială și returnează primele valori non-NULL dintre ele. Funcția COALESCE se încheie odată ce întâlnește prima valoare non NULL și o returnează. Dacă toate argumentele din lista de intrare sunt valori NULL, atunci funcția va returna NULL.

Este o funcție generică care este acceptată în toate bazele de date precum MYSQL, SQL Server (începând cu 2008), baza de date Azure SQL, PostgreSQL, Oracle etc.

Unele utilizări ale funcției SQL COALESCE sunt :

  • Gestionarea valorilor NULL
  • Rularea a două sau mai multe interogări ca o singură interogare
  • Alternativă de comandă rapidă la instrucțiunile CASE lungi și consumatoare de timp

Sintaxă și parametri

Sintaxa de bază pentru utilizarea funcției COALESCE în SQL este următoarea:

SELECT COALESCE(value_1, value_2, value_3, value_4,… value_n);

Parametrii menționați în sintaxa de mai sus sunt :

COALESCE() : funcție SQL care returnează prima valoare non-nulă din lista de intrare.

value_1, value_2,value_3,value_4,… value_n : valorile de intrare care trebuie evaluate.

Deoarece funcția COALESCE este o expresie în sine, poate fi folosită în orice declarație sau clauză care acceptă expresii precum SELECT, WHERE și HAVING.

Funcția COALESCE poate fi considerată o versiune specializată a instrucțiunii CASE în SQL.

Sintaxa instrucțiunii CASE care prezintă funcția funcției COALESCE este următoarea :

SELECT column_name1,colonna_name2, column_name3,
CAZ
WHEN column_name1 NU ESTE NULL THEN column_name1
WHEN column_name2 NU ESTE NULL THEN column_name2 ELSE NULL
END ca „case_name”
FROM table_name;

Parametrii menționați în sintaxa de mai sus sunt :

Column_name1, column_name2: valorile coloanelor care trebuie să se unească, adică dacă rezultatele oricăreia dintre aceste coloane au ca rezultat valori NULL, atunci prima valoare non-NULL dintre ele va fi returnată. Dar dacă ambele evaluează la NULL, atunci CASE va returna NULL.

În continuare, vom discuta despre funcția COALESCE menționată mai sus în detaliu.

Pentru a înțelege mai bine conceptul, vom lua ajutorul tabelului angajatului (acesta conține detalii personale ale tuturor angajaților).

Datele din tabelul „angajați” sunt următoarele :

Exemple de SQL COALESCE

Iată câteva exemple pentru a înțelege mai bine SQL COALESCE.

Exemplu 1

Interogare SQL pentru a ilustra utilizarea funcției COALESCE simple.

Cod:

SELECT COALESCE(NULL, NULL, NULL, „EduCBA”, NULL, NULL);

Ieșire:

În acest exemplu, putem vedea că funcția COALESCE selectează prima valoare nu NULL, se întâlnește și apoi se termină.

Exemplu 2

Interogare SQL pentru a găsi primele valori non-nule din prenumele și numele unui angajat.

Cod:

SELECT ID angajat, prenume, prenume,
COALESCE(prenume,nume) ca „nume nu este nul”
DE LA angajați;

Ieșire:

În acest exemplu, este returnat primul non NULL.

Exemplu 3

Interogare SQL pentru a ilustra funcția COALESCE ca un caz special de CASE.

Cod:

SELECT ID angajat, prenume, prenume,
CAZ
CÂND prenumele NU ESTE NULL, atunci prenume
CÂND numele de familie NU ESTE NULL, atunci numele de familie ELSE NULL
END ca „prima valoare nu nulă”
DE LA angajați;

Ieșire:

Compară rezultatele acestei interogări cu cele ale interogării din al treilea exemplu. Putem vedea că ambele produc același rezultat. Acest lucru se datorează faptului că funcția COALESCE poate fi considerată un caz special de CASE.

Exemplu 4

Interogare SQL pentru a ilustra utilizarea funcției COALESCE pe valori cu diferite tipuri de date.

Cod:

SELECT ID angajat, prenume, prenume,
COALESCE(codul angajat, prenume, prenume) ca „nume nu este nul”
DE LA angajați;

Ieșire:

În exemplul de mai sus, putem vedea că ID-ul angajatului nu a putut fi asociat cu valorile datelor prenume și prenume, deoarece au tipuri de date diferite.

Pentru a rezolva această problemă, este posibil să schimbăm tipul de date al angajaților folosind funcția CONVERT, așa cum se arată mai jos.

Cod:

SELECT ID angajat, prenume, prenume,
COALESCE(CONVERT(varchar(50),employeeid),firstname,lastname) ca „prima valori nu nule”
DE LA angajați;

Ieșire:

Exemplu 5

O interogare SQL complexă pentru a ilustra utilizarea funcției COALESCE.

Să presupunem că vrem să știm salariile tuturor angajaților din firmă. Dar în tabelul angajatului, putem observa că salariile tuturor angajaților nu au fost menționate. Cu toate acestea, au fost menționate tarifele orare și comisionul angajaților cu câmpuri salariale lipsă. Putem folosi asta pentru a compara salariile angajaților în felul următor.

Cod:

SELECT COALESCE(CONVERT(varchar(50),employeeid),prenume,nume) ca „Identificator de angajat”,
COALESCE(salariu,hourry_rate830 + COALESCE(comision,0))ca „Compensație”
DE LA angajați
COMANDĂ PENTRU 2 DESC;

Ieșire:

Folosind prima funcție COALESCE, am încercat să identificăm un angajat combinând ID, prenumele și numele de familie împreună, apoi folosind a doua funcție COALESCE, am încercat să selectăm salariul sau compensația calculată.

Concluzie

Funcția SQL COALESCE este o funcție încorporată în baze de date precum SQL Server, Azure etc. care returnează prima valoare non-NULL dintr-o listă de argumente de intrare. Este foarte util în gestionarea valorilor nule și servește o alternativă rapidă și ușoară la instrucțiunile SQL CASE.

Ajutați dezvoltarea site -ului, împărtășind articolul cu prietenii!