logo

СКЛ Сервер ИСНУЛЛ функција

То је уграђена функција у СКЛ Сервер. Омогућава кориснику да замени НУЛЛ вредности са датом заменском вредношћу. Овај чланак даје потпуни преглед функције ИСНУЛЛ за враћање алтернативне вредности ако записи израза или табеле имају вредности НУЛЛ.

Синтакса

Следеће је синтакса која илуструје функцију ИСНУЛЛ:

 ISNULL ( Expression, Replacement ) 

Као што видимо да ова синтакса прихвата само два аргумента:

    Израз: Користи се за проверу НУЛЛ. Може бити било које врсте.Замена: То је вредност која ће бити враћена када је израз НУЛЛ. Мора да се имплицитно конвертује у вредност типа израза.

Ако израз има вредност НУЛЛ, ова функција замењује вредност НУЛЛ са заменском вредношћу. Када је аргумент типови података су различити , СКЛ сервер имплицитно трансформише тип података замене вредности у тип података израза пре враћања вредности. Добићемо вредност израза када израз није НУЛЛ.

Функција ИСНУЛЛ може да ради у СКЛ Серверу (почев од 2008.), Паралелном складишту података, Азуре СКЛ бази података и Азуре СКЛ складишту података.

јава матх.рандом

Пример функције ИСНУЛЛ

Хајде да истражимо функцију ИСНУЛЛ са неким примерима у СКЛ Серверу.

1. ИСНУЛЛ функција са нумеричком вредношћу

Пример у наставку користи функцију ИСНУЛЛ. Овде је први аргумент НУЛЛ; стога, враћа вредност другог аргумента у резултату:

 SELECT ISNULL(NULL, 25) AS Result; 

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

2. ИСНУЛЛ функција са подацима низа знакова

Пример у наставку користи функцију ИСНУЛЛ. Овде ћемо добити вредност стринга 'Здраво' јер је први аргумент. Од дефиниције функције ИСНУЛЛ(), она враћа вредност првог аргумента када НИЈЕ НУЛЛ:

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

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

3. ИСНУЛЛ функција са променљивим

Пример у наставку користи функцију ИСНУЛЛ и враћа резултат помоћу променљиве:

вб и вб нет
 DECLARE @expres VARCHAR(45); DECLARE @value VARCHAR(25); SET @expres = NULL; SET @value = 'Javatpoint'; SELECT ISNULL(@expres, @value) AS Result; 

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

4. Функција ИСНУЛЛ на табели

Овде ћемо видети како можемо да заменимо вредност колоне смисленом вредношћу када садржи нулте вредности. Хајде да прво направимо табелу под називом ' Запослени' користећи следећу изјаву:

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

Сада ћемо уметнути неке вредности у ову табелу користећи следећу изјаву:

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

Када проверимо табелу, то можемо видети запослени 2 и 3 имају НУЛЛ вредност.

објекат у Јави
СКЛ Сервер ИСНУЛЛ функција

Претпоставимо да желимо да заменимо НУЛЛ вредности ових колона без њиховог трајног ажурирања у табели. У том случају, можемо користити функцију ИСНУЛЛ да заменимо НУЛЛ вредности одређеном вредношћу.

На пример , желимо да вратимо старости и плата запосленог са 22 и 25000, респективно, ако њихове колоне имају НУЛЛ вредности у табели Емплоиее. То можемо урадити користећи следећу изјаву:

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

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

Ако покренемо упит са функцијом ИСНУЛЛ за колону у којој ниједна колона нема вредности НУЛЛ у табели, овај упит ће вратити стварне вредности редова.

На пример , ажурирали смо плата запосленог чији ИД=2 као што следи:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

Опет, ако извршимо функцију ИСНУЛЛ, то не мења колону плате. Погледајте доњи излаз:

мавен инсталл
СКЛ Сервер ИСНУЛЛ функција

5. ИСНУЛЛ са агрегатним функцијама

СКЛ Сервер нам такође омогућава да користимо агрегатне функције као што су СУМ, АВГ са функцијом ИСНУЛЛ. Претпоставимо да ћемо можда морати да добијемо сума плате колона која је присутна у табели Запослени, а ако било која колона зарада има НУЛЛ, биће замењена са 25000 пре додавања плата.

Пре него што извршимо збирне методе, ажурираћемо плату запослених са НУЛЛ чији је ид 2, користећи упит испод.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

Пример у наставку прво замењује вредност НУЛЛ са 25000, а затим врши функцију СУМ на њој. Погледајте доњи излаз:

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

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

Слично, функција ИСНУЛЛ се може користити за замену НУЛЛ вредности, а затим враћање просечне вредности са АВГ() функција . Погледајте изјаву у наставку:

покушајте структуру података
 SELECT AVG(ISNULL(Salary, 25000)) AS Avg_of_Salaries FROM Employee; 

Након извршења, добићемо следећи излаз:

СКЛ Сервер ИСНУЛЛ функција

Разлика између СКЛ Сервер ИСНУЛЛ и ИС НУЛЛ

Функције ИСНУЛЛ и ИС НУЛЛ су различите у СКЛ Серверу. Користимо функцију ИСНУЛЛ када имамо потребу замени НУЛЛ вредности са наведеном вредношћу. С друге стране, ми користимо функцију ИС НУЛЛ када то желимо идентификују НУЛЛ вредности у столу.

Хајде да видимо доњи пример да илуструјемо њихове разлике .

Претпоставимо да желимо да добијемо податке о запосленима из ' Запослени' табела која садржи НУЛЛ вредности у колони Плата. Да бисмо добили ову врсту информација, требало би да користимо функцију ИС НУЛЛ у ГДЕ клаузула како следи:

 SELECT * FROM Employee WHERE Salary IS NULL; 

Вратиће податке о запосленом чија је плата НУЛЛ:

СКЛ Сервер ИСНУЛЛ функција

Сада, ако покушамо да добијемо ову врсту информација помоћу функције ИСНУЛЛ, СКЛ Сервер кроз следеће грешка :

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

Ево грешке:

СКЛ Сервер ИСНУЛЛ функција

Дакле, јасно је да нам СКЛ Сервер не дозвољава да користимо ИСНУЛЛ за проналажење НУЛЛ вредности.