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:
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:
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:
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:
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
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:
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:
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:
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:
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:
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:
Dakle, jasno je da nam SQL Server ne dopušta korištenje ISNULL za pronalaženje NULL vrijednosti.