Det är en inbyggd funktion i SQL Server. Det låter användaren ersätt NULL-värdena med ett givet återanskaffningsvärde. Den här artikeln ger en fullständig översikt över ISNULL-funktionen för att returnera ett alternativt värde om uttrycket eller tabellposterna har NULL-värden.
Syntax
Följande är en syntax som illustrerar ISNULL-funktionen:
ISNULL ( Expression, Replacement )
Som vi kan se att denna syntax endast accepterar två argument:
Om uttrycket utvärderas till NULL, ersätter den här funktionen NULL-värdet med ersättningsvärdet. När argumentet är datatyperna är olika , SQL-servern omvandlar implicit datatypen för ersättningsvärdet till uttrycksdatatypen innan du returnerar ett värde. Vi kommer att få uttrycksvärdet när uttrycket inte är NULL.
ISNULL-funktionen kan fungera i SQL Server (från och med 2008), Parallel Data Warehouse, Azure SQL Database och Azure SQL Data Warehouse.
ISNULL-funktionsexempel
Låt oss utforska ISNULL-funktionen med några exempel i SQL Server.
1. ISNULL-funktionen med det numeriska värdet
I exemplet nedan används ISNULL-funktionen. Här är det första argumentet NULL; därför returnerar den värdet av ett andra argument i ett resultat:
java-arrayer
SELECT ISNULL(NULL, 25) AS Result;
Efter exekvering kommer vi att få följande utdata:
2. ISNULL-funktion med teckensträngsdata
I exemplet nedan används ISNULL-funktionen. Här får vi strängvärdet 'Hallå' eftersom det är det första argumentet. Från funktionsdefinitionen ISNULL() returnerar den det första argumentvärdet när det INTE är NULL:
kommando i nod js
SELECT ISNULL('Hello', 'Javatpoint') AS Result;
Efter exekvering kommer vi att få följande utdata:
3. ISNULL-funktion med variabler
Exemplet nedan använder ISNULL-funktionen och returnerar resultatet med en variabel:
DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result;
Efter exekvering kommer vi att få följande utdata:
4. ISNULL-funktion på bordet
Här ska vi se hur vi kan ersätta ett kolumnvärde med ett meningsfullt värde när det innehåller nollvärden. Låt oss först skapa en tabell som heter ' Anställd' med hjälp av följande uttalande:
CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL );
Nu kommer vi att infoga några värden i den här tabellen med hjälp av följande uttalande:
INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL);
När vi verifierar tabellen kan vi se det anställda 2 och 3 har en NULL värde.
Anta att vi vill ersätta NULL-värdena för dessa kolumner utan att uppdatera dem permanent i tabellen. I så fall kan vi använda ISNULL-funktionen för att ersätta NULL-värdena med det specifika värdet.
Till exempel , vi vill lämna tillbaka ålder och lön av den anställde med 22 respektive 25 000 om deras kolumner har NULL-värden i tabellen Employee. Vi kan göra detta genom att använda följande uttalande:
partiell derivatsymbol latex
SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee;
Efter exekvering kommer vi att få följande utdata:
Om vi kör frågan med ISNULL-funktionen för kolumnen där ingen kolumn har NULL-värden i tabellen, kommer denna fråga att returnera de faktiska värdena för raderna.
Till exempel , vi har uppdaterat lön av den anställde vars ID=2 som följer:
UPDATE Employee SET Salary = 65000 WHERE ID=2;
Återigen, om vi kör ISNULL-funktionen ändrar den inte lönekolumnen. Se utgången nedan:
5. ISNULL med aggregerade funktioner
SQL Server gör det också möjligt för oss att använda de aggregerade funktionerna som SUM, AVG med ISNULL-funktionen. Anta att vi kan behöva skaffa summan av en lön kolumnen som finns i tabellen Anställd, och om någon lönekolumn har NULL kommer den att ersättas med 25 000 innan lönerna läggs till.
Innan vi utför de aggregerade metoderna kommer vi att uppdatera anställdas lön med NULL vars id är 2, med hjälp av nedanstående fråga.
UPDATE Employee SET Salary = NULL WHERE ID=2;
Exemplet nedan ersätter först NULL-värdet med 25000 och utförde sedan SUM-funktionen på det. Se utgången nedan:
SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee;
Efter exekvering kommer vi att få följande utdata:
På liknande sätt kan ISNULL-funktionen användas för att ersätta NULL-värden och sedan returnera medelvärdet med AVG() funktion . Se nedanstående uttalande:
SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee;
Efter exekvering kommer vi att få följande utdata:
sträng i c
Skillnaden mellan SQL Server ISNULL och IS NULL
Funktionerna ISNULL och IS NULL är båda olika i SQL Server. Vi använder ISNULL-funktionen när vi har behov av det ersätt NULL-värdena med ett angivet värde. Å andra sidan använder vi funktionen IS NULL när vi vill identifiera NULL-värden i ett bord.
Låt oss se exemplet nedan för att illustrera deras skillnader .
Anta att vi vill få personaldata från ' Anställd' tabell som innehåller NULL-värden i kolumnen Lön. För att få den här typen av information bör vi använda funktionen IS NULL i VAR klausul enligt följande:
SELECT * FROM Employee WHERE Salary IS NULL;
Det kommer att returnera den anställde vars lön är NULL:
Nu, om vi försöker få den här typen av information med ISNULL-funktionen, SQL Server genom följande fel :
SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0;
Här är felet:
Således är det tydligt att SQL Server inte tillåter oss att använda ISNULL för att hitta NULL-värden.