logo

SQL Server ISNULL funkcija

Tā ir SQL Server iebūvēta funkcija. Tas ļauj lietotājam aizstāt NULL vērtības ar noteiktu aizstāšanas vērtību. Šajā rakstā ir sniegts pilnīgs pārskats par funkciju ISNULL, lai atgrieztu alternatīvu vērtību, ja izteiksmei vai tabulas ierakstiem ir NULL vērtības.

Sintakse

Tālāk ir sniegta sintakse, kas ilustrē funkciju ISNULL:

 ISNULL ( Expression, Replacement ) 

Kā redzam, šī sintakse pieņem tikai divus argumentus:

    Izteiksme: To izmanto, lai pārbaudītu NULL. Tas var būt jebkura veida.Aizstāšana: tā ir vērtība, kas tiks atgriezta, ja izteiksme ir NULL. Tam ir jābūt netieši konvertējamam izteiksmes veida vērtībā.

Ja izteiksmes vērtība ir NULL, šī funkcija NULL vērtību aizstāj ar aizstāšanas vērtību. Kad arguments datu veidi ir dažādi , SQL serveris netieši pārveido aizstāšanas vērtības datu tipu par izteiksmes datu tipu pirms vērtības atgriešanas. Mēs iegūsim izteiksmes vērtību, ja izteiksme nav NULL.

Funkcija ISNULL var darboties SQL Server (sākot ar 2008. gadu), Parallel Data Warehouse, Azure SQL Database un Azure SQL Data Warehouse.

ISNULL funkcijas piemērs

Izpētīsim funkciju ISNULL ar dažiem piemēriem SQL Server.

1. Funkcija ISNULL ar skaitlisko vērtību

Tālāk sniegtajā piemērā tiek izmantota funkcija ISNULL. Šeit pirmais arguments ir NULL; tāpēc tas atgriež rezultāta otrā argumenta vērtību:

 SELECT ISNULL(NULL, 25) AS Result; 

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

2. ISNULL funkcija ar rakstzīmju virknes datiem

Tālāk sniegtajā piemērā tiek izmantota funkcija ISNULL. Šeit mēs iegūsim virknes vērtību 'Sveiki' jo tas ir pirmais arguments. Sākot ar funkcijas ISNULL() definīciju, tā atgriež pirmo argumenta vērtību, ja tā NAV NULL:

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

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

3. ISNULL funkcija ar mainīgajiem

Tālāk sniegtajā piemērā tiek izmantota funkcija ISNULL un tiek atgriezts rezultāts, izmantojot mainīgo:

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

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

4. ISNULL funkcija tabulā

Šeit mēs redzēsim, kā mēs varam aizstāt kolonnas vērtību ar nozīmīgu vērtību, ja tajā ir nulles vērtības. Vispirms izveidosim tabulu ar nosaukumu ' darbinieks' izmantojot tālāk norādīto paziņojumu:

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

Tagad mēs ievietosim dažas vērtības šajā tabulā, izmantojot tālāk norādīto paziņojumu:

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

Kad mēs pārbaudām tabulu, mēs to varam redzēt darbiniekiem 2 un 3 ir NULL vērtību.

nfa uz dfa
SQL Server ISNULL funkcija

Pieņemsim, ka mēs vēlamies aizstāt šo kolonnu NULL vērtības, neatjauninot tās pastāvīgi tabulā. Tādā gadījumā mēs varam izmantot funkciju ISNULL, lai aizstātu NULL vērtības ar konkrēto vērtību.

Piemēram , mēs vēlamies atgriezt vecums un algu darbinieka ar attiecīgi 22 un 25000, ja to kolonnās tabulā Darbinieks ir NULL vērtības. Mēs to varam izdarīt, izmantojot šādu paziņojumu:

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

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

Ja mēs izpildām vaicājumu ar funkciju ISNULL kolonnai, kurā nevienai kolonnai tabulā nav NULL vērtību, šis vaicājums atgriezīs rindu faktiskās vērtības.

Piemēram , esam atjauninājuši algu darbinieka, kura ID=2 sekojoši:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Atkal, ja izpildām funkciju ISNULL, tas nemaina algas kolonnu. Skatiet zemāk esošo izvadi:

SQL Server ISNULL funkcija

5. ISNULL ar apkopotām funkcijām

SQL Server arī ļauj mums izmantot apkopotās funkcijas, piemēram, SUM, AVG ar funkciju ISNULL. Pieņemsim, ka mums varētu būt nepieciešams iegūt algas summa Kolonna atrodas tabulā Darbinieks, un, ja kādā algas ailē ir NULL, tā tiks aizstāta ar 25000 pirms algu pievienošanas.

Pirms apkopošanas metožu veikšanas mēs atjaunināsim darbinieku algu ar NULL, kuras id ir 2, izmantojot zemāk esošo vaicājumu.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Tālāk sniegtajā piemērā NULL vērtība vispirms tiek aizstāta ar 25000 un pēc tam tiek veikta SUM funkcija. Skatiet zemāk esošo izvadi:

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

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

Līdzīgi funkciju ISNULL var izmantot, lai aizstātu NULL vērtības un pēc tam atgrieztu vidējo vērtību ar AVG() funkcija . Skatiet tālāk sniegto paziņojumu:

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

Pēc izpildes mēs saņemsim šādu izvadi:

SQL Server ISNULL funkcija

Atšķirība starp SQL Server ISNULL un IS NULL

ISNULL un IS NULL funkcijas SQL Server atšķiras. Mēs izmantojam funkciju ISNULL, kad tas ir nepieciešams aizstāt NULL vērtības ar noteiktu vērtību. No otras puses, mēs izmantojam funkciju IS NULL, kad to vēlamies identificēt NULL vērtības tabulā.

Apskatīsim tālāk sniegto piemēru, lai ilustrētu to atšķirības .

kas ir kaudze java

Pieņemsim, ka mēs vēlamies iegūt darbinieku datus no darbinieks' tabula, kurā ir NULL vērtības kolonnā Alga. Lai iegūtu šāda veida informāciju, mums ir jāizmanto funkcija IS NULL KUR klauzulu šādi:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Tas atgriezīs informāciju par darbinieku, kura alga ir NULL:

SQL Server ISNULL funkcija

Tagad, ja mēs mēģinām iegūt šāda veida informāciju, izmantojot funkciju ISNULL, SQL Server, izmantojot tālāk norādītās darbības kļūda :

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

Šeit ir kļūda:

SQL Server ISNULL funkcija

Tādējādi ir skaidrs, ka SQL Server neļauj mums izmantot ISNULL, lai atrastu NULL vērtības.