logo

SQL serverio ISNULL funkcija

Tai yra integruota SQL serverio funkcija. Tai leidžia vartotojui pakeiskite NULL reikšmes su nurodyta pakeitimo verte. Šiame straipsnyje pateikiama išsami funkcijos ISNULL, kad būtų grąžinta alternatyvi reikšmė, jei išraiškos arba lentelės įrašai turi NULL reikšmes, apžvalga.

10 iki 6 laipsnio

Sintaksė

Toliau pateikiama sintaksė, iliustruojanti funkciją ISNULL:

 ISNULL ( Expression, Replacement ) 

Kaip matome, ši sintaksė priima tik du argumentus:

    Išraiška: Jis naudojamas patikrinti, ar nėra NULL. Jis gali būti bet kokio tipo.Pakeitimas: Tai reikšmė, kuri bus grąžinta, kai išraiška yra NULL. Jis turi būti netiesiogiai konvertuojamas į išraiškos tipo reikšmę.

Jei išraiška vertinama kaip NULL, ši funkcija pakeičia NULL reikšmę pakeitimo reikšme. Kai argumentas duomenų tipai yra skirtingi , SQL serveris netiesiogiai pakeičia pakaitinės vertės duomenų tipą į išraiškos duomenų tipą prieš grąžinant vertę. Išraiškos reikšmę gausime, kai išraiška nėra NULL.

Funkcija ISNULL gali veikti SQL Server (pradedant nuo 2008 m.), Parallel Data Warehouse, Azure SQL duomenų bazėje ir Azure SQL Data Warehouse.

ISNULL funkcijos pavyzdys

Išnagrinėkime funkciją ISNULL su kai kuriais SQL serverio pavyzdžiais.

1. Funkcija ISNULL su skaitine verte

Toliau pateiktame pavyzdyje naudojama funkcija ISNULL. Čia pirmasis argumentas yra NULL; todėl jis grąžina antrojo rezultato argumento reikšmę:

 SELECT ISNULL(NULL, 25) AS Result; 

Po vykdymo gausime žemiau pateiktą išvestį:

SQL serverio ISNULL funkcija

2. ISNULL funkcija su simbolių eilutės duomenimis

Toliau pateiktame pavyzdyje naudojama funkcija ISNULL. Čia gausime eilutės vertę 'Sveiki' nes tai pirmasis argumentas. Nuo funkcijos ISNULL() apibrėžimo, ji grąžina pirmąją argumento reikšmę, kai ji NĖRA NULL:

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

Po vykdymo gausime žemiau pateiktą išvestį:

SQL serverio ISNULL funkcija

3. ISNULL funkcija su kintamaisiais

Toliau pateiktame pavyzdyje naudojama funkcija ISNULL ir rezultatas pateikiamas naudojant kintamąjį:

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

Po vykdymo gausime žemiau pateiktą išvestį:

SQL serverio ISNULL funkcija

4. ISNULL funkcija lentelėje

Čia pamatysime, kaip galime pakeisti stulpelio reikšmę prasminga reikšme, kai joje yra nulinių reikšmių. Pirmiausia sukurkime lentelę pavadinimu ' Darbuotojas' naudojant toliau pateiktą teiginį:

burbulų rūšiavimo python
 CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL ); 

Dabar mes įterpsime kai kurias vertes į šią lentelę naudodami toliau pateiktą teiginį:

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

Kai tikriname lentelę, tai matome 2 ir 3 darbuotojai turi NULL vertė.

SQL serverio ISNULL funkcija

Tarkime, kad norime pakeisti šių stulpelių NULL reikšmes neatnaujindami jų nuolat lentelėje. Tokiu atveju galime naudoti funkciją ISNULL, kad pakeistume NULL reikšmes konkrečia reikšme.

Pavyzdžiui , norime grąžinti amžiaus ir atlyginimas darbuotojo su atitinkamai 22 ir 25 000, jei jų stulpeliuose yra NULL reikšmės lentelėje Darbuotojas. Tai galime padaryti naudodami šį teiginį:

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

Po vykdymo gausime žemiau pateiktą išvestį:

SQL serverio ISNULL funkcija

Jei vykdysime užklausą su funkcija ISNULL stulpelyje, kuriame lentelėje nėra NULL reikšmių, ši užklausa pateiks faktines eilučių reikšmes.

Pavyzdžiui , mes atnaujinome atlyginimas darbuotojo, kurio ID=2 taip:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Vėlgi, jei vykdome funkciją ISNULL, tai atlyginimo stulpelio nekeičia. Žiūrėkite žemiau pateiktą išvestį:

kas yra kompiuteris
SQL serverio ISNULL funkcija

5. ISNULL su agregatinėmis funkcijomis

SQL serveris taip pat leidžia mums naudoti suvestines funkcijas, tokias kaip SUM, AVG su ISNULL funkcija. Tarkime, mums gali prireikti gauti atlyginimo suma Darbuotojų lentelėje esantis stulpelis, o jei kuriame atlyginimo stulpelyje yra NULL, jis bus pakeistas 25 000 prieš pridedant atlyginimus.

Prieš atlikdami sumavimo metodus, atnaujinsime darbuotojo atlyginimą NULL, kurio id yra 2, naudodami žemiau esančią užklausą.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Toliau pateiktame pavyzdyje NULL reikšmė pirmiausia pakeičiama 25000, o tada atliekama SUM funkcija. Žiūrėkite žemiau pateiktą išvestį:

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

Po vykdymo gausime žemiau pateiktą išvestį:

Android telefono nustatymų meniu
SQL serverio ISNULL funkcija

Panašiai funkcija ISNULL gali būti naudojama norint pakeisti NULL reikšmes ir grąžinti vidutinę reikšmę AVG() funkcija . Žiūrėkite toliau pateiktą pareiškimą:

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

Po vykdymo gausime žemiau pateiktą išvestį:

SQL serverio ISNULL funkcija

Skirtumas tarp SQL Server ISNULL ir IS NULL

„SQL Server“ funkcijos ISNULL ir IS NULL skiriasi. Kai reikia, naudojame funkciją ISNULL pakeiskite NULL reikšmes su nurodyta verte. Kita vertus, kai norime, naudojame funkciją IS NULL nustatyti NULL reikšmes lentelėje.

Pažiūrėkime toliau pateiktą pavyzdį, kad parodytume jų skirtumus .

Tarkime, kad norime gauti darbuotojo duomenis iš Darbuotojas' lentelė, kurios stulpelyje Atlyginimas yra NULL reikšmės. Norėdami gauti tokio tipo informaciją, turėtume naudoti funkciją IS NULL KUR išlygą taip:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Bus grąžinta informacija apie darbuotoją, kurio atlyginimas yra NULIS:

SQL serverio ISNULL funkcija

Dabar, jei bandysime gauti tokio tipo informaciją naudodami ISNULL funkciją, SQL Server atlikdami šiuos veiksmus klaida :

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

Štai klaida:

SQL serverio ISNULL funkcija

Taigi aišku, kad SQL serveris neleidžia mums naudoti ISNULL, kad rastume NULL reikšmes.