logo

SQL Server ISNULL-Funktion

Es handelt sich um eine integrierte Funktion in SQL Server. Es ermöglicht dem Benutzer Ersetzen Sie die NULL-Werte mit einem gegebenen Wiederbeschaffungswert. Dieser Artikel gibt einen vollständigen Überblick über die ISNULL-Funktion, um einen alternativen Wert zurückzugeben, wenn der Ausdruck oder die Tabellendatensätze NULL-Werte haben.

Syntax

Das Folgende ist eine Syntax, die die ISNULL-Funktion veranschaulicht:

 ISNULL ( Expression, Replacement ) 

Wie wir sehen können, akzeptiert diese Syntax nur zwei Argumente:

    Ausdruck: Wird zur Prüfung auf NULL verwendet. Es kann jeder Art sein.Ersatz: Dies ist der Wert, der zurückgegeben wird, wenn der Ausdruck NULL ist. Es muss implizit in einen Wert des Ausdruckstyps konvertierbar sein.

Wenn der Ausdruck NULL ergibt, ersetzt diese Funktion den NULL-Wert durch den Ersatzwert. Wenn der Streit Datentypen sind unterschiedlich , der SQL-Server Wandelt den Ersatzwertdatentyp implizit in den Ausdrucksdatentyp um bevor ein Wert zurückgegeben wird. Wir erhalten den Ausdruckswert, wenn der Ausdruck nicht NULL ist.

Die ISNULL-Funktion kann in SQL Server (ab 2008), Parallel Data Warehouse, Azure SQL Database und Azure SQL Data Warehouse verwendet werden.

Beispiel einer ISNULL-Funktion

Lassen Sie uns die ISNULL-Funktion anhand einiger Beispiele in SQL Server untersuchen.

1. ISNULL-Funktion mit dem numerischen Wert

Das folgende Beispiel verwendet die ISNULL-Funktion. Hier ist das erste Argument NULL; Daher gibt es den Wert eines zweiten Arguments in einem Ergebnis zurück:

 SELECT ISNULL(NULL, 25) AS Result; 

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

2. ISNULL-Funktion mit Zeichenfolgendaten

Das folgende Beispiel verwendet die ISNULL-Funktion. Hier erhalten wir den String-Wert 'Hallo' weil es das erste Argument ist. Ab der Funktionsdefinition ISNULL() wird der erste Argumentwert zurückgegeben, wenn dieser NICHT NULL ist:

Java-Zufallszahl
 SELECT ISNULL('Hello', 'Javatpoint') AS Result; 

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

3. ISNULL-Funktion mit Variablen

Das folgende Beispiel verwendet die ISNULL-Funktion und gibt das Ergebnis mithilfe einer Variablen zurück:

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

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

4. ISNULL-Funktion für die Tabelle

Hier sehen wir, wie wir einen Spaltenwert durch einen aussagekräftigen Wert ersetzen können, wenn er Nullwerte enthält. Erstellen wir zunächst eine Tabelle mit dem Namen „ Mitarbeiter' unter Verwendung der folgenden Anweisung:

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

Nun fügen wir mit der folgenden Anweisung einige Werte in diese Tabelle ein:

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

Wenn wir die Tabelle überprüfen, können wir das sehen Mitarbeiter 2 und 3 haben einen NULL Wert.

SQL Server ISNULL-Funktion

Angenommen, wir möchten die NULL-Werte dieser Spalten ersetzen, ohne sie dauerhaft in der Tabelle zu aktualisieren. In diesem Fall können wir die Funktion ISNULL verwenden, um die NULL-Werte durch den spezifischen Wert zu ersetzen.

Zum Beispiel , wir wollen das zurückgeben Alter Und Gehalt des Mitarbeiters mit 22 bzw. 25000, wenn ihre Spalten in der Mitarbeitertabelle NULL-Werte haben. Wir können dies tun, indem wir die folgende Anweisung verwenden:

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

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

Wenn wir die Abfrage mit der ISNULL-Funktion für die Spalte ausführen, in der keine Spalte NULL-Werte in der Tabelle enthält, gibt diese Abfrage die tatsächlichen Werte der Zeilen zurück.

Zum Beispiel , wir haben die aktualisiert Gehalt des Mitarbeiters, dessen ID=2 wie folgt:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Auch hier gilt: Wenn wir die Funktion ISNULL ausführen, ändert sich die Gehaltsspalte nicht. Siehe die folgende Ausgabe:

SQL Server ISNULL-Funktion

5. ISNULL mit Aggregatfunktionen

SQL Server ermöglicht uns auch die Verwendung von Aggregatfunktionen wie SUM, AVG mit der ISNULL-Funktion. Angenommen, wir müssen vielleicht das bekommen Summe eines Gehalts Spalte in der Mitarbeitertabelle vorhanden ist, und wenn eine Gehaltsspalte NULL enthält, wird sie durch 25000 ersetzt, bevor die Gehälter hinzugefügt werden.

Wie finde ich meine Monitorgröße heraus?

Bevor wir die Aggregationsmethoden ausführen, aktualisieren wir mithilfe der folgenden Abfrage das Gehalt des Mitarbeiters mit NULL, dessen ID 2 ist.

Schnee gegen Eis
 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Im folgenden Beispiel wird zunächst der NULL-Wert durch 25000 ersetzt und dann die SUM-Funktion darauf ausgeführt. Siehe die folgende Ausgabe:

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

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

Ebenso kann die ISNULL-Funktion verwendet werden, um NULL-Werte zu ersetzen und dann den Durchschnittswert durch zurückzugeben AVG()-Funktion . Siehe die folgende Erklärung:

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

Nach der Ausführung erhalten wir die folgende Ausgabe:

SQL Server ISNULL-Funktion

Unterschied zwischen SQL Server ISNULL und IS NULL

Die Funktionen ISNULL und IS NULL unterscheiden sich in SQL Server. Wir verwenden die ISNULL-Funktion, wenn es nötig ist Ersetzen Sie die NULL-Werte mit einem angegebenen Wert. Andererseits verwenden wir die Funktion IS NULL, wenn wir möchten NULL-Werte identifizieren in einer Tabelle.

Sehen wir uns das folgende Beispiel an, um ihre Unterschiede zu veranschaulichen .

Angenommen, wir möchten die Mitarbeiterdaten aus der ' Mitarbeiter' Tabelle, die NULL-Werte in der Spalte „Gehalt“ enthält. Um diese Art von Informationen zu erhalten, sollten wir die Funktion IS NULL in verwenden WO Klausel wie folgt:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Es werden die Mitarbeiterdetails zurückgegeben, deren Gehalt NULL ist:

SQL Server ISNULL-Funktion

Wenn wir nun versuchen, diese Art von Informationen mit der ISNULL-Funktion abzurufen, geht SQL Server wie folgt vor Fehler :

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

Hier ist der Fehler:

SQL Server ISNULL-Funktion

Daher ist es klar, dass SQL Server es uns nicht erlaubt, ISNULL zum Suchen von NULL-Werten zu verwenden.