logo

SQL Server ISNULL -funktio

Se on SQL Serverin sisäänrakennettu toiminto. Sen avulla käyttäjä voi korvaa NULL-arvot tietyllä korvausarvolla. Tämä artikkeli antaa täydellisen yleiskatsauksen ISNULL-funktiosta, joka palauttaa vaihtoehtoisen arvon, jos lausekkeella tai taulukkotietueella on NULL-arvoja.

Syntaksi

Seuraava on syntaksi, joka havainnollistaa ISNULL-funktiota:

 ISNULL ( Expression, Replacement ) 

Kuten näemme, tämä syntaksi hyväksyy vain kaksi argumenttia:

mysql ei ole sama
    Ilmaisu: Sitä käytetään NULL-arvon tarkistamiseen. Se voi olla mitä tahansa tyyppiä.Korvaus: Se on arvo, joka palautetaan, kun lauseke on NULL. Sen on oltava implisiittisesti muunnettavissa lauseketyypin arvoksi.

Jos lausekkeen arvo on NULL, tämä funktio korvaa NULL-arvon korvausarvolla. Kun väite on tietotyypit ovat erilaisia , SQL-palvelin muuntaa implisiittisesti korvausarvon tietotyypin lausekkeen tietotyypiksi ennen arvon palauttamista. Saamme lausekkeen arvon, kun lauseke ei ole NULL.

ISNULL-toiminto voi toimia SQL Serverissä (vuodesta 2008 alkaen), Parallel Data Warehousessa, Azure SQL Databasessa ja Azure SQL Data Warehousessa.

ISNULL-funktioesimerkki

Tutkitaanpa ISNULL-funktiota muutamilla esimerkeillä SQL Serverissä.

1. ISNULL-funktio numeerisella arvolla

Alla oleva esimerkki käyttää ISNULL-funktiota. Tässä ensimmäinen argumentti on NULL; siksi se palauttaa tuloksen toisen argumentin arvon:

java laskuri
 SELECT ISNULL(NULL, 25) AS Result; 

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

2. ISNULL-funktio merkkijonodatan kanssa

Alla oleva esimerkki käyttää ISNULL-funktiota. Täältä saamme merkkijonon arvon 'Hei' koska se on ensimmäinen argumentti. ISNULL()-funktion määrittelystä lähtien se palauttaa ensimmäisen argumentin arvon, kun se EI ole NULL:

 SELECT ISNULL('Hello', 'Javatpoint') AS Result; 

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

3. ISNULL-funktio muuttujilla

Alla oleva esimerkki käyttää ISNULL-funktiota ja palauttaa tuloksen muuttujalla:

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

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

4. ISNULL-funktio taulukossa

Tässä aiomme nähdä, kuinka voimme korvata sarakkeen arvon merkityksellisellä arvolla, kun se sisältää nolla-arvoja. Luodaan ensin taulukko nimeltä Työntekijä' käyttämällä alla olevaa lausetta:

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

Nyt lisäämme joitain arvoja tähän taulukkoon käyttämällä alla olevaa lausetta:

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

Kun tarkistamme taulukon, voimme nähdä sen työntekijöillä 2 ja 3 on NULL arvo.

SQL Server ISNULL -funktio

Oletetaan, että haluamme korvata näiden sarakkeiden NULL-arvot päivittämättä niitä pysyvästi taulukossa. Siinä tapauksessa voimme käyttää ISNULL-funktiota korvaamaan NULL-arvot tietyllä arvolla.

Esimerkiksi , haluamme palauttaa ikä ja palkkaa työntekijän 22 ja 25 000, jos niiden sarakkeissa on NULL-arvot Työntekijä-taulukossa. Voimme tehdä tämän käyttämällä seuraavaa lausetta:

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

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

Jos suoritamme kyselyn ISNULL-funktiolla sarakkeelle, jossa millään sarakkeella ei ole NULL-arvoja taulukossa, tämä kysely palauttaa rivien todelliset arvot.

Esimerkiksi , olemme päivittäneet palkkaa työntekijästä, jonka ID=2 seuraavasti:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Jälleen, jos suoritamme ISNULL-funktion, se ei muuta palkkasaraketta. Katso alla oleva tulos:

kokeile tietorakennetta
SQL Server ISNULL -funktio

5. ISNULL yhdistelmäfunktioilla

SQL Server mahdollistaa myös yhdistelmäfunktioiden, kuten SUM, AVG, käytön ISNULL-funktion kanssa. Oletetaan, että meidän on ehkä hankittava palkan summa Työntekijätaulukon sarake, ja jos jossakin palkkasarakkeessa on NULL, se korvataan 25 000:lla ennen palkkojen lisäämistä.

Ennen koontimenetelmien suorittamista päivitämme työntekijän palkan NULL:lla, jonka tunnus on 2, alla olevalla kyselyllä.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Alla oleva esimerkki korvaa ensin NULL-arvon arvolla 25000 ja suoritti sitten SUMMA-toiminnon sille. Katso alla oleva tulos:

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

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

Vastaavasti ISNULL-funktiota voidaan käyttää korvaamaan NULL-arvot ja palauttamaan sitten keskiarvon arvolla AVG()-funktio . Katso alla oleva lausunto:

ero jään ja lumen välillä
 SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee; 

Suorituksen jälkeen saamme seuraavan tuloksen:

SQL Server ISNULL -funktio

Ero SQL Serverin ISNULL ja IS NULL välillä

ISNULL- ja IS NULL-funktiot ovat molemmat erilaisia ​​SQL Serverissä. Käytämme ISNULL-funktiota, kun meillä on tarvetta korvaa NULL-arvot tietyllä arvolla. Toisaalta käytämme IS NULL -funktiota, kun haluamme tunnista NULL-arvot taulukossa.

Katsotaanpa alla olevaa esimerkkiä niiden erojen havainnollistamiseksi .

Oletetaan, että haluamme saada työntekijätiedot Työntekijä' taulukko, joka sisältää NULL-arvot Palkka-sarakkeessa. Tämän tyyppisten tietojen saamiseksi meidän tulisi käyttää IS NULL -toimintoa MISSÄ lauseke seuraavasti:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Se palauttaa työntekijän tiedot, jonka palkka on NULL:

SQL Server ISNULL -funktio

Jos nyt yritämme saada tämäntyyppisiä tietoja ISNULL-toiminnolla, SQL Server seuraavien ohjeiden avulla virhe :

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

Tässä on virhe:

SQL Server ISNULL -funktio

Näin ollen on selvää, että SQL Server ei salli meidän käyttää ISNULL-koodia NULL-arvojen löytämiseen.