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:
nē
ISNULL ( Expression, Replacement )
Kā redzam, šī sintakse pieņem tikai divus argumentus:
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:
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:
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:
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
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:
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:
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:
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:
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:
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:
Tādējādi ir skaidrs, ka SQL Server neļauj mums izmantot ISNULL, lai atrastu NULL vērtības.