Ez az SQL Server beépített funkciója. Lehetővé teszi a felhasználó számára cserélje ki a NULL értékeket adott helyettesítési értékkel. Ez a cikk teljes áttekintést nyújt az ISNULL függvényről, amely alternatív értéket ad vissza, ha a kifejezés vagy a táblarekordok NULL értékkel rendelkeznek.
Szintaxis
A következő szintaxis az ISNULL függvényt illusztrálja:
ISNULL ( Expression, Replacement )
Amint látjuk, ez a szintaxis csak két argumentumot fogad el:
Ha a kifejezés értéke NULL, akkor ez a függvény a NULL értéket lecseréli a helyettesítő értékre. Amikor az érv az adattípusok eltérőek , az SQL szerver implicit módon átalakítja a helyettesítési érték adattípusát kifejezés adattípusává mielőtt visszaad egy értéket. A kifejezés értékét akkor kapjuk meg, ha a kifejezés nem NULL.
Az ISNULL függvény az SQL Serverben (2008-tól kezdve), a párhuzamos adattárházban, az Azure SQL Database-ben és az Azure SQL Data Warehouse-ban működhet.
fcfs
ISNULL függvény példa
Nézzük meg az ISNULL függvényt néhány példával az SQL Serverben.
1. ISNULL függvény a számértékkel
Az alábbi példa az ISNULL függvényt használja. Itt az első argumentum NULL; ezért az eredményben egy második argumentum értékét adja vissza:
SELECT ISNULL(NULL, 25) AS Result;
A végrehajtás után az alábbi kimenetet kapjuk:
2. ISNULL függvény karakterlánc adatokkal
Az alábbi példa az ISNULL függvényt használja. Itt kapjuk meg a karakterlánc értékét 'Helló' mert ez az első érv. Az ISNULL() függvény meghatározásakor az első argumentumértéket adja vissza, ha az NEM NULL:
SELECT ISNULL('Hello', 'Javatpoint') AS Result;
A végrehajtás után az alábbi kimenetet kapjuk:
3. ISNULL függvény változókkal
Az alábbi példa az ISNULL függvényt használja, és az eredményt egy változó használatával adja vissza:
DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result;
A végrehajtás után az alábbi kimenetet kapjuk:
4. ISNULL függvény a táblán
Itt látni fogjuk, hogyan cserélhetünk le egy oszlopértéket értelmes értékre, ha az null értékeket tartalmaz. Először hozzunk létre egy táblát Munkavállaló' az alábbi állítás segítségével:
CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL );
Most beszúrunk néhány értéket ebbe a táblázatba az alábbi utasítással:
igazítsa a képet a css-hez
INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL);
Ha ellenőrizzük a táblázatot, ezt láthatjuk a 2. és a 3. alkalmazott NULL érték.
Tegyük fel, hogy le akarjuk cserélni ezen oszlopok NULL értékeit anélkül, hogy véglegesen frissítenénk őket a táblázatban. Ebben az esetben az ISNULL függvénnyel lecserélhetjük a NULL értékeket az adott értékre.
Például , szeretnénk visszaadni a kor és fizetés a munkavállaló 22-vel, illetve 25000-rel, ha oszlopaik NULL értéket tartalmaznak az Employee táblában. Ezt a következő állítás segítségével tehetjük meg:
SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee;
A végrehajtás után az alábbi kimenetet kapjuk:
Ha a lekérdezést az ISNULL függvénnyel futtatjuk arra az oszlopra, ahol a táblázatban egyetlen oszlop sem tartalmaz NULL értéket, akkor ez a lekérdezés a sorok tényleges értékeit adja vissza.
Például , frissítettük a fizetés annak a munkavállalónak, akinek ID=2 alábbiak szerint:
UPDATE Employee SET Salary = 65000 WHERE ID=2;
Ismétlem, ha végrehajtjuk az ISNULL függvényt, az nem változtatja meg a fizetés oszlopot. Lásd az alábbi kimenetet:
5. ISNULL összesített függvényekkel
Az SQL Server lehetővé teszi az összesített függvények, például a SUM, AVG használatát az ISNULL függvénnyel. Tegyük fel, hogy meg kell szereznünk a fizetés összege oszlop jelen van az Alkalmazott táblázatban, és ha valamelyik fizetés oszlopban NULL szerepel, akkor azt 25000-re cseréljük a fizetések hozzáadása előtt.
Az összesítési módszerek végrehajtása előtt az alábbi lekérdezéssel frissítjük az alkalmazottak fizetését NULL-lal, amelynek azonosítója 2.
UPDATE Employee SET Salary = NULL WHERE ID=2;
Az alábbi példa először lecseréli a NULL értéket 25000-re, majd végrehajtotta rajta a SUM függvényt. Lásd az alábbi kimenetet:
SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee;
A végrehajtás után az alábbi kimenetet kapjuk:
Hasonlóképpen, az ISNULL függvény használható a NULL értékek lecserélésére, majd az átlagos érték visszaadására AVG() függvény . Lásd az alábbi nyilatkozatot:
logikai érték a karakterláncra
SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee;
A végrehajtás után az alábbi kimenetet kapjuk:
Különbség az SQL Server ISNULL és az IS NULL között
Az ISNULL és az IS NULL függvények eltérőek az SQL Serverben. Az ISNULL függvényt használjuk, amikor szükségünk van rá cserélje ki a NULL értékeket meghatározott értékkel. Másrészt akkor használjuk az IS NULL függvényt, amikor akarjuk azonosítani a NULL értékeket egy táblázatban.
Nézzük meg az alábbi példát, hogy szemléltesse a különbségeiket .
Tegyük fel, hogy az alkalmazottak adatait a ' Munkavállaló' táblázat, amely NULL értékeket tartalmaz a Fizetés oszlopban. Az ilyen típusú információk megszerzéséhez az IS NULL függvényt kell használnunk a AHOL záradék a következőképpen:
SELECT * FROM Employee WHERE Salary IS NULL;
Visszaadja a munkavállaló adatait, akinek a fizetése NULLA:
Ha most az ISNULL függvénnyel próbálunk ilyen típusú információkat szerezni, akkor az SQL Server a következő módon hiba :
SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0;
Itt a hiba:
Így egyértelmű, hogy az SQL Server nem teszi lehetővé, hogy az ISNULL-t használjuk a NULL értékek megkeresésére.