logo

SQL Server ISNULL-functie

Het is een ingebouwde functie in SQL Server. Het stelt de gebruiker in staat vervang de NULL-waarden met een bepaalde vervangingswaarde. Dit artikel geeft een compleet overzicht van de functie ISNULL om een ​​alternatieve waarde te retourneren als de expressie- of tabelrecords NULL-waarden hebben.

Syntaxis

Het volgende is een syntaxis die de ISNULL-functie illustreert:

 ISNULL ( Expression, Replacement ) 

Zoals we kunnen zien, accepteert deze syntaxis slechts twee argumenten:

arp een opdracht
    Uitdrukking: Het wordt gebruikt om te controleren op NULL. Het kan van elk type zijn.Vervanging: Het is de waarde die wordt geretourneerd als de expressie NULL is. Het moet impliciet converteerbaar zijn naar een waarde van het expressietype.

Als de expressie resulteert in NULL, vervangt deze functie de NULL-waarde door de vervangingswaarde. Wanneer het argument is gegevenstypen zijn verschillend , de SQL-server transformeert impliciet het gegevenstype van de vervangingswaarde naar het gegevenstype expressie voordat u een waarde retourneert. We krijgen de expressiewaarde als de expressie niet NULL is.

De ISNULL-functie kan werken in SQL Server (vanaf 2008), Parallel Data Warehouse, Azure SQL Database en Azure SQL Data Warehouse.

ISNULL-functievoorbeeld

Laten we de ISNULL-functie verkennen met enkele voorbeelden in SQL Server.

1. ISNULL-functie met de numerieke waarde

In het onderstaande voorbeeld wordt de functie ISNULL gebruikt. Hier is het eerste argument NULL; daarom retourneert het de waarde van een tweede argument in een resultaat:

 SELECT ISNULL(NULL, 25) AS Result; 

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

2. ISNULL-functie met tekenreeksgegevens

In het onderstaande voorbeeld wordt de functie ISNULL gebruikt. Hier krijgen we de tekenreekswaarde 'Hallo' omdat het het eerste argument is. Vanaf de functiedefinitie van ISNULL() retourneert het de eerste argumentwaarde wanneer deze NIET NULL is:

lezen vanuit csv-java
 SELECT ISNULL('Hello', 'Javatpoint') AS Result; 

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

3. ISNULL-functie met variabelen

In het onderstaande voorbeeld wordt de functie ISNULL gebruikt en wordt het resultaat geretourneerd met behulp van een variabele:

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

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

4. ISNULL-functie op tafel

Hier gaan we zien hoe we een kolomwaarde kunnen vervangen door een betekenisvolle waarde als deze nulwaarden bevat. Laten we eerst een tabel maken met de naam ' Medewerker' met behulp van de onderstaande verklaring:

 CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL ); 

Nu zullen we enkele waarden in deze tabel invoegen met behulp van de onderstaande verklaring:

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

Als we de tabel verifiëren, kunnen we dat zien werknemers 2 en 3 hebben een NULL waarde.

SQL Server ISNULL-functie

Stel dat we de NULL-waarden van deze kolommen willen vervangen zonder ze permanent in de tabel bij te werken. In dat geval kunnen we de functie ISNULL gebruiken om de NULL-waarden te vervangen door de specifieke waarde.

Bijvoorbeeld , wij willen de retour sturen leeftijd En salaris van de werknemer met respectievelijk 22 en 25000, als hun kolommen NULL-waarden hebben in de tabel Werknemer. Dit kunnen we doen door de volgende verklaring te gebruiken:

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

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

Als we de query uitvoeren met de functie ISNULL voor de kolom waarin geen enkele kolom NULL-waarden in de tabel heeft, retourneert deze query de werkelijke waarden van de rijen.

Bijvoorbeeld , we hebben de salaris van de werknemer van wie ID=2 als volgt:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Nogmaals, als we de ISNULL-functie uitvoeren, verandert dit de salariskolom niet. Zie de onderstaande uitvoer:

SQL Server ISNULL-functie

5. ISNULL met aggregatiefuncties

SQL Server stelt ons ook in staat om de aggregatiefuncties zoals SUM, AVG te gebruiken met de ISNULL-functie. Stel dat we de som van een salaris kolom aanwezig in de tabel Werknemer, en als een salariskolom NULL heeft, wordt deze vervangen door 25000 voordat de salarissen worden toegevoegd.

Voordat we de aggregatiemethoden uitvoeren, zullen we het werknemerssalaris bijwerken met NULL waarvan de id 2 is, met behulp van de onderstaande query.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

In het onderstaande voorbeeld wordt eerst de NULL-waarde vervangen door 25000 en vervolgens de SUM-functie erop uitgevoerd. Zie de onderstaande uitvoer:

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

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

Op dezelfde manier kan de functie ISNULL worden gebruikt om NULL-waarden te vervangen en vervolgens de gemiddelde waarde terug te geven AVG()-functie . Zie onderstaande verklaring:

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

Na uitvoering krijgen we de onderstaande uitvoer:

SQL Server ISNULL-functie

Verschil tussen SQL Server ISNULL en IS NULL

De functies ISNULL en IS NULL zijn beide verschillend in SQL Server. We gebruiken de ISNULL-functie wanneer dat nodig is vervang de NULL-waarden met een opgegeven waarde. Aan de andere kant gebruiken we de IS NULL-functie wanneer we dat willen NULL-waarden identificeren in een tafel.

Laten we het onderstaande voorbeeld bekijken om hun verschillen te illustreren .

Stel dat we de werknemersgegevens uit de ' Medewerker' tabel met NULL-waarden in de kolom Salaris. Om dit soort informatie te verkrijgen, moeten we de IS NULL-functie gebruiken in de WAAR clausule als volgt:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Het retourneert het werknemersgegevens waarvan het salaris NULL is:

latex lijst
SQL Server ISNULL-functie

Als we nu dit soort informatie proberen te verkrijgen met de ISNULL-functie, SQL Server via het volgende fout :

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

Hier is de fout:

SQL Server ISNULL-functie

Het is dus duidelijk dat SQL Server ons niet toestaat de ISNULL te gebruiken om NULL-waarden te vinden.