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:
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į:
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į:
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į:
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ė.
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į:
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
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
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į:
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:
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:
Taigi aišku, kad SQL serveris neleidžia mums naudoti ISNULL, kad rastume NULL reikšmes.