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
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:
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:
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:
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.
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:
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:
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:
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:
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
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:
Het is dus duidelijk dat SQL Server ons niet toestaat de ISNULL te gebruiken om NULL-waarden te vinden.