logo

SQL Server ISNULL funkcija

To je ugrađena funkcija u SQL Server. Omogućuje korisniku da zamijeniti NULL vrijednosti sa zadanom zamjenskom vrijednošću. Ovaj članak daje potpuni pregled funkcije ISNULL za vraćanje alternativne vrijednosti ako izraz ili zapisi tablice imaju NULL vrijednosti.

Sintaksa

Sljedeća je sintaksa koja ilustrira funkciju ISNULL:

niz usporediti java
 ISNULL ( Expression, Replacement ) 

Kao što vidimo da ova sintaksa prihvaća samo dva argumenta:

    Izraz: Koristi se za provjeru NULL. Može biti bilo koje vrste.Zamjena: To je vrijednost koja će biti vraćena kada je izraz NULL. Mora se implicitno pretvoriti u vrijednost tipa izraza.

Ako izraz ima vrijednost NULL, ova funkcija zamjenjuje vrijednost NULL zamjenskom vrijednošću. Kada je argument tipovi podataka su različiti , SQL poslužitelj implicitno transformira tip podataka zamjenske vrijednosti u tip podataka izraza prije vraćanja vrijednosti. Dobit ćemo vrijednost izraza kada izraz nije NULL.

Funkcija ISNULL može raditi u SQL Serveru (počevši od 2008), paralelnom skladištu podataka, Azure SQL bazi podataka i Azure SQL skladištu podataka.

Primjer funkcije ISNULL

Istražimo funkciju ISNULL s nekoliko primjera u SQL Serveru.

1. ISNULL funkcija s numeričkom vrijednošću

Primjer u nastavku koristi funkciju ISNULL. Ovdje je prvi argument NULL; stoga vraća vrijednost drugog argumenta u rezultatu:

 SELECT ISNULL(NULL, 25) AS Result; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

2. Funkcija ISNULL s podacima niza znakova

Primjer u nastavku koristi funkciju ISNULL. Ovdje ćemo dobiti vrijednost niza 'Zdravo' jer je prvi argument. Što se tiče definicije funkcije ISNULL(), ona vraća vrijednost prvog argumenta kada NIJE NULL:

 SELECT ISNULL('Hello', 'Javatpoint') AS Result; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

3. ISNULL funkcija s varijablama

Primjer u nastavku koristi funkciju ISNULL i vraća rezultat pomoću varijable:

najbolji osmijeh na svijetu
 DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

4. ISNULL funkcija na tablici

Ovdje ćemo vidjeti kako možemo zamijeniti vrijednost stupca sa smislenom vrijednošću kada sadrži nulte vrijednosti. Kreirajmo prvo tablicu pod nazivom ' Zaposlenik' koristeći donju izjavu:

 CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL ); 

Sada ćemo u ovu tablicu umetnuti neke vrijednosti koristeći donju izjavu:

 INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL); 

Kada provjerimo tablicu, to možemo vidjeti zaposlenici 2 i 3 imaju NULL vrijednost.

izmijeniti datoteku linux
SQL Server ISNULL funkcija

Pretpostavimo da želimo zamijeniti NULL vrijednosti ovih stupaca bez njihovog trajnog ažuriranja u tablici. U tom slučaju možemo upotrijebiti funkciju ISNULL da zamijenimo NULL vrijednosti određenom vrijednošću.

Na primjer , želimo vratiti dob i plaća zaposlenika s 22 odnosno 25000, ako njihovi stupci imaju NULL vrijednosti u tablici zaposlenika. To možemo učiniti pomoću sljedeće izjave:

 SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

Ako pokrenemo upit s funkcijom ISNULL za stupac u kojem nijedan stupac nema NULL vrijednosti u tablici, ovaj će upit vratiti stvarne vrijednosti redaka.

Na primjer , ažurirali smo plaća zaposlenika čiji ID=2 kako slijedi:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Opet, ako izvršimo funkciju ISNULL, ona ne mijenja stupac plaće. Pogledajte donji izlaz:

SQL Server ISNULL funkcija

5. ISNULL s agregatnim funkcijama

SQL Server nam također omogućuje korištenje agregatnih funkcija kao što su SUM, AVG s funkcijom ISNULL. Pretpostavimo da ćemo možda morati dobiti iznos plaće stupac prisutan u tablici zaposlenika, a ako bilo koji stupac plaća ima NULL, bit će zamijenjen s 25000 prije dodavanja plaća.

Prije izvođenja agregatnih metoda, ažurirat ćemo plaću zaposlenika s NULL čiji je ID 2, pomoću upita u nastavku.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Primjer u nastavku prvo zamjenjuje vrijednost NULL s 25000, a zatim izvodi funkciju SUM na njoj. Pogledajte donji izlaz:

singleton dizajn
 SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

Slično, funkcija ISNULL može se koristiti za zamjenu NULL vrijednosti i zatim vraćanje prosječne vrijednosti funkcija AVG(). . Pogledajte izjavu u nastavku:

 SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee; 

Nakon izvršenja, dobit ćemo sljedeći rezultat:

SQL Server ISNULL funkcija

Razlika između SQL Server ISNULL i IS NULL

Funkcije ISNULL i IS NULL razlikuju se u SQL Serveru. Funkciju ISNULL koristimo kada imamo potrebu zamijeniti NULL vrijednosti s određenom vrijednošću. S druge strane, funkciju IS NULL koristimo kada to želimo identificirati NULL vrijednosti u tablici.

Pogledajmo donji primjer kako bismo ilustrirali njihove razlike .

java datum trenutni

Pretpostavimo da želimo dobiti podatke o zaposleniku iz ' Zaposlenik' tablica koja sadrži NULL vrijednosti u stupcu Plaća. Da bismo dobili ovu vrstu informacija, trebali bismo koristiti funkciju IS NULL u GDJE klauzula kako slijedi:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Vratit će podatke o zaposleniku čija je plaća NULL:

SQL Server ISNULL funkcija

Sada, ako pokušamo dobiti ovu vrstu informacija s ISNULL funkcijom, SQL Server kroz sljedeće greška :

 SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0; 

Evo pogreške:

SQL Server ISNULL funkcija

Dakle, jasno je da nam SQL Server ne dopušta korištenje ISNULL za pronalaženje NULL vrijednosti.