És una funció integrada a SQL Server. Permet a l'usuari substituïu els valors NULL amb un valor de substitució determinat. Aquest article ofereix una visió general completa de la funció ISNULL per retornar un valor alternatiu si l'expressió o els registres de la taula tenen valors NULL.
anotacions d'arrencada de primavera
Sintaxi
La següent és una sintaxi que il·lustra la funció ISNULL:
ISNULL ( Expression, Replacement )
Com podem veure que aquesta sintaxi només accepta dos arguments:
Si l'expressió s'avalua com a NULL, aquesta funció substitueix el valor NULL pel valor de substitució. Quan l'argument els tipus de dades són diferents , el servidor SQL transforma implícitament el tipus de dades del valor de substitució al tipus de dades d'expressió abans de retornar un valor. Obtenim el valor de l'expressió quan l'expressió no sigui NULL.
La funció ISNULL pot funcionar a SQL Server (a partir del 2008), Parallel Data Warehouse, Azure SQL Database i Azure SQL Data Warehouse.
Exemple de funció ISNULL
Explorem la funció ISNULL amb alguns exemples a SQL Server.
1. Funció ISNULL amb el valor numèric
L'exemple següent utilitza la funció ISNULL. Aquí el primer argument és NULL; per tant, retorna el valor d'un segon argument en un resultat:
SELECT ISNULL(NULL, 25) AS Result;
Després de l'execució, obtindrem la següent sortida:
2. Funció ISNULL amb dades de cadena de caràcters
L'exemple següent utilitza la funció ISNULL. Aquí obtindrem el valor de la cadena 'Hola' perquè és el primer argument. A partir de la definició de la funció ISNULL(), retorna el valor del primer argument quan NO és NULL:
base de dades
SELECT ISNULL('Hello', 'Javatpoint') AS Result;
Després de l'execució, obtindrem la següent sortida:
3. Funció ISNULL amb variables
L'exemple següent utilitza la funció ISNULL i retorna el resultat mitjançant una variable:
DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result;
Després de l'execució, obtindrem la següent sortida:
4. Funció ISNULL a la taula
Aquí veurem com podem substituir un valor de columna per un valor significatiu quan conté valors nuls. Creem primer una taula anomenada ' Empleat' utilitzant la declaració següent:
Formateador de dates senzill en java
CREATE TABLE Employee (ID INT IDENTITY PRIMARY KEY, Emp_Name VARCHAR(50) NOT NULL, Age INT NULL, Salary INT NULL );
Ara inserirem alguns valors en aquesta taula utilitzant la següent instrucció:
INSERT INTO Employee (Emp_Name, Age, Salary) VALUES ('Kevin Huges', 28, 45000), ('Rose Bennet', NULL, 36000), ('Peter Butler', 25, NULL);
Quan comprovem la taula, ho podem veure els empleats 2 i 3 tenen un NULL valor.
Suposem que volem substituir els valors NULL d'aquestes columnes sense actualitzar-los permanentment a la taula. En aquest cas, podem utilitzar la funció ISNULL per substituir els valors NULL pel valor específic.
Per exemple , volem tornar el edat i sou de l'empleat amb 22 i 25000, respectivament, si les seves columnes tenen valors NULL a la taula Employee. Ho podem fer utilitzant la següent declaració:
SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee;
Després de l'execució, obtindrem la següent sortida:
Si executem la consulta amb la funció ISNULL per a la columna on cap columna té valors NULL a la taula, aquesta consulta retornarà els valors reals de les files.
Per exemple , hem actualitzat el sou de l'empleat del qual ID=2 com segueix:
UPDATE Employee SET Salary = 65000 WHERE ID=2;
De nou, si executem la funció ISNULL, no canvia la columna salari. Vegeu la sortida següent:
matriu afegint elements java
5. ISNULL amb funcions agregades
SQL Server també ens permet utilitzar les funcions agregades com SUM, AVG amb la funció ISNULL. Suposem que potser necessitem obtenir el suma d'un salari columna present a la taula Empleat, i si alguna columna de salari té NULL, se substituirà per 25000 abans d'afegir els sous.
Abans de realitzar els mètodes agregats, actualitzarem el salari dels empleats amb NULL l'identificador del qual és 2, mitjançant la consulta següent.
UPDATE Employee SET Salary = NULL WHERE ID=2;
L'exemple següent substitueix primer el valor NULL per 25000 i després s'hi realitza la funció SUMA. Vegeu la sortida següent:
SELECT SUM(ISNULL(Salary, 25000)) AS Sum_of_Salaries FROM Employee;
Després de l'execució, obtindrem la següent sortida:
De la mateixa manera, la funció ISNULL es pot utilitzar per substituir valors NULL i després retornar el valor mitjà amb Funció AVG(). . Vegeu la declaració següent:
codi abs c
SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee;
Després de l'execució, obtindrem la següent sortida:
Diferència entre SQL Server ISNULL i IS NULL
Les funcions ISNULL i IS NULL són diferents a SQL Server. Utilitzem la funció ISNULL quan ho necessitem substituïu els valors NULL amb un valor especificat. D'altra banda, utilitzem la funció IS NULL quan volem identificar valors NULL en una taula.
Vegem l'exemple següent per il·lustrar les seves diferències .
Suposem que volem obtenir les dades dels empleats del ' Empleat' taula que conté valors NULL a la columna Salari. Per obtenir aquest tipus d'informació, hauríem d'utilitzar la funció IS NULL al fitxer ON clàusula de la següent manera:
SELECT * FROM Employee WHERE Salary IS NULL;
Tornarà el detall de l'empleat el salari del qual és NULL:
Ara, si intentem obtenir aquest tipus d'informació amb la funció ISNULL, SQL Server a través del següent error :
SELECT * FROM Employee WHERE Salary ISNULL(NULL, 0;
Aquí està l'error:
Per tant, està clar que SQL Server no ens permet utilitzar l'ISNULL per trobar valors NULL.