logo

Funkcija SQL Server ISNULL

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
    Izraz: Uporablja se za preverjanje NULL. Lahko je katere koli vrste.Zamenjava: To je vrednost, ki bo vrnjena, ko je izraz NULL. Mora biti implicitno pretvorljiva v vrednost tipa izraza.

Č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:

Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

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.

Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

Č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
Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

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Č:

Funkcija SQL Server ISNULL

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:

Funkcija SQL Server ISNULL

Tako je jasno, da nam SQL Server ne dovoljuje uporabe ISNULL za iskanje vrednosti NULL.