Je vgrajena funkcija v SQL Server. Uporabniku omogoča, da zamenjajte vrednosti NULL z dano nadomestno vrednostjo. Ta članek nudi popoln pregled funkcije ISNULL za vrnitev alternativne vrednosti, če imajo izraz ali zapisi tabele vrednosti NULL.
Sintaksa
Sledi sintaksa, ki ponazarja funkcijo ISNULL:
ISNULL ( Expression, Replacement )
Kot lahko vidimo, ta sintaksa sprejema samo dva argumenta:
kako velik je moj monitor
Če je izraz ovrednoten na NULL, ta funkcija nadomesti vrednost NULL z nadomestno vrednostjo. Ko je argument tipi podatkov so različni , strežnik SQL implicitno pretvori podatkovni tip nadomestne vrednosti v podatkovni tip izraza preden vrnete vrednost. Vrednost izraza bomo dobili, ko izraz ni NULL.
Funkcija ISNULL lahko deluje v SQL Server (začenši z 2008), Parallel Data Warehouse, Azure SQL Database in Azure SQL Data Warehouse.
Primer funkcije ISNULL
Raziščimo funkcijo ISNULL z nekaj primeri v strežniku SQL.
1. Funkcija ISNULL s številsko vrednostjo
Spodnji primer uporablja funkcijo ISNULL. Tukaj je prvi argument NULL; zato vrne vrednost drugega argumenta v rezultatu:
v niz metodo java
SELECT ISNULL(NULL, 25) AS Result;
Po izvedbi bomo dobili spodnji rezultat:
2. Funkcija ISNULL s podatki niza znakov
Spodnji primer uporablja funkcijo ISNULL. Tukaj bomo dobili vrednost niza 'Zdravo' ker je prvi argument. Glede na definicijo funkcije ISNULL() vrne prvo vrednost argumenta, ko ta NI NULL:
SELECT ISNULL('Hello', 'Javatpoint') AS Result;
Po izvedbi bomo dobili spodnji rezultat:
3. Funkcija ISNULL s spremenljivkami
Spodnji primer uporablja funkcijo ISNULL in vrne rezultat z uporabo spremenljivke:
DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result;
Po izvedbi bomo dobili spodnji rezultat:
4. Funkcija ISNULL v tabeli
Tukaj bomo videli, kako lahko zamenjamo vrednost stolpca s smiselno vrednostjo, če vsebuje ničelne vrednosti. Najprej ustvarimo tabelo z imenom ' Zaposleni' z uporabo spodnje izjave:
CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL );
Zdaj bomo v to tabelo vstavili nekaj vrednosti z uporabo spodnje izjave:
INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL);
Ko preverimo tabelo, lahko to vidimo zaposlena 2 in 3 imata NULL vrednost.
Recimo, da želimo zamenjati vrednosti NULL teh stolpcev, ne da bi jih trajno posodobili v tabeli. V tem primeru lahko s funkcijo ISNULL zamenjamo vrednosti NULL z določeno vrednostjo.
Na primer , želimo vrniti starost in plača zaposlenega z 22 oziroma 25000, če imajo njihovi stolpci vrednosti NULL v tabeli Zaposleni. To lahko storimo z uporabo naslednje izjave:
relacijska algebra v rdbms
SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee;
Po izvedbi bomo dobili spodnji rezultat:
Če izvedemo poizvedbo s funkcijo ISNULL za stolpec, kjer noben stolpec v tabeli nima vrednosti NULL, bo ta poizvedba vrnila dejanske vrednosti vrstic.
Na primer , posodobili smo plača zaposlenega, katerega ID=2 kot sledi:
UPDATE Employee SET Salary = 65000 WHERE ID=2;
Še enkrat, če izvedemo funkcijo ISNULL, to ne spremeni stolpca plače. Oglejte si spodnji rezultat:
prehod motnosti css
5. ISNULL z agregatnimi funkcijami
SQL Server nam omogoča tudi uporabo agregatnih funkcij, kot sta SUM, AVG s funkcijo ISNULL. Recimo, da bomo morda morali dobiti znesek plače prisoten v tabeli Zaposleni, in če ima katerikoli stolpec plače NULL, bo pred dodajanjem plač nadomeščen s 25000.
Preden izvedemo agregatne metode, bomo plačo zaposlenega posodobili z NULL, katerega id je 2, s pomočjo spodnje poizvedbe.
UPDATE Employee SET Salary = NULL WHERE ID=2;
Spodnji primer najprej zamenja vrednost NULL z 25000 in nato zanjo izvede funkcijo SUM. Oglejte si spodnji rezultat:
SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee;
Po izvedbi bomo dobili spodnji rezultat:
Podobno lahko funkcijo ISNULL uporabite za zamenjavo vrednosti NULL in nato vrnete povprečno vrednost funkcija AVG(). . Oglejte si spodnjo izjavo:
ostri kot
SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee;
Po izvedbi bomo dobili spodnji rezultat:
Razlika med SQL Server ISNULL in IS NULL
Funkciji ISNULL in IS NULL sta v strežniku SQL različni. Funkcijo ISNULL uporabljamo, kadar jo potrebujemo zamenjajte vrednosti NULL z določeno vrednostjo. Po drugi strani pa funkcijo IS NULL uporabimo, ko to želimo identificirati vrednosti NULL v tabeli.
Oglejmo si spodnji primer, da ponazorimo njihove razlike .
Recimo, da želimo pridobiti podatke o zaposlenih iz ' Zaposleni' tabela, ki vsebuje vrednosti NULL v stolpcu Plača. Za pridobitev te vrste informacij bi morali uporabiti funkcijo IS NULL v KJE člen, kot sledi:
SELECT * FROM Employee WHERE Salary IS NULL;
Vrnil bo podrobnosti o zaposlenem, katerega plača je NIČ:
Zdaj, če poskušamo pridobiti to vrsto informacij s funkcijo ISNULL, SQL Server prek naslednjega napaka :
SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0;
Tukaj je napaka:
Tako je jasno, da nam SQL Server ne dovoljuje uporabe ISNULL za iskanje vrednosti NULL.