logo

SQL Server ISNULL 함수

SQL Server에 내장된 함수입니다. 이를 통해 사용자는 NULL 값을 대체 주어진 대체 값으로. 이 문서에서는 식이나 테이블 레코드에 NULL 값이 있는 경우 대체 값을 반환하는 ISNULL 함수에 대한 전체 개요를 제공합니다.

통사론

다음은 ISNULL 함수를 설명하는 구문입니다.

 ISNULL ( Expression, Replacement ) 

보시다시피 이 구문은 두 개의 인수만 허용합니다.

자바의 스택
    표현: NULL인지 확인하는데 사용됩니다. 어떤 유형이든 가능합니다.대사: 표현식이 NULL일 때 반환할 값입니다. 표현식 유형의 값으로 암시적으로 변환 가능해야 합니다.

표현식이 NULL로 평가되면 이 함수는 NULL 값을 대체 값으로 바꿉니다. 인수의 경우 데이터 유형이 다릅니다 , SQL 서버 대체 값 데이터 유형을 표현식 데이터 유형으로 암시적으로 변환합니다. 값을 반환하기 전에. 표현식이 NULL이 아닐 때 표현식 값을 얻습니다.

ISNULL 함수는 SQL Server(2008부터), 병렬 데이터 웨어하우스, Azure SQL Database 및 Azure SQL 데이터 웨어하우스에서 작동할 수 있습니다.

ISNULL 함수 예

SQL Server의 몇 가지 예를 통해 ISNULL 함수를 살펴보겠습니다.

1. 숫자 값을 사용하는 ISNULL 함수

아래 예에서는 ISNULL 함수를 사용합니다. 여기서 첫 번째 인수는 NULL입니다. 따라서 결과에서 두 번째 인수의 값을 반환합니다.

 SELECT ISNULL(NULL, 25) AS Result; 

실행 후에는 다음과 같은 결과가 출력됩니다.

SQL Server ISNULL 함수

2. 문자열 데이터를 이용한 ISNULL 함수

아래 예에서는 ISNULL 함수를 사용합니다. 여기서 우리는 문자열 값을 얻을 것입니다 '안녕하세요' 첫 번째 주장이기 때문입니다. ISNULL() 함수 정의에 따라 NULL이 아닌 경우 첫 번째 인수 값을 반환합니다.

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

실행 후에는 다음과 같은 결과가 출력됩니다.

SQL Server ISNULL 함수

3. 변수가 있는 ISNULL 함수

아래 예에서는 ISNULL 함수를 사용하고 변수를 사용하여 결과를 반환합니다.

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

실행 후에는 다음과 같은 결과가 출력됩니다.

SQL Server ISNULL 함수

4. 테이블의 ISNULL 함수

여기서는 null 값이 포함된 열 값을 의미 있는 값으로 바꾸는 방법을 살펴보겠습니다. 먼저 '라는 테이블을 만들어 보겠습니다. 직원' 아래 명령문을 사용하여:

자바의 이중
 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에는 NULL이 있습니다. 값.

SQL Server ISNULL 함수

테이블에서 영구적으로 업데이트하지 않고 이러한 열의 NULL 값을 바꾸고 싶다고 가정해 보겠습니다. 이 경우 ISNULL 함수를 사용하여 NULL 값을 특정 값으로 바꿀 수 있습니다.

예를 들어 , 우리는 나이 그리고 샐러리 Employee 테이블의 해당 열에 NULL 값이 있는 경우 각각 22와 25000을 가진 직원입니다. 다음 명령문을 사용하여 이를 수행할 수 있습니다.

Java에서 데이터베이스에 연결
 SELECT ID, Emp_Name, ISNULL(Age, 22) AS Age, ISNULL(Salary, 25000) AS Salary FROM Employee; 

실행 후에는 다음과 같은 결과가 출력됩니다.

SQL Server ISNULL 함수

테이블에 NULL 값이 있는 열이 없는 열에 대해 ISNULL 함수를 사용하여 쿼리를 실행하면 이 쿼리는 행의 실제 값을 반환합니다.

예를 들어 , 우리는 샐러리 그 직원의 ID=2 다음과 같이:

 UPDATE Employee SET Salary = 65000 WHERE ID=2; 

다시 말하지만 ISNULL 함수를 실행하면 급여 열이 변경되지 않습니다. 아래 출력을 참조하세요.

SQL Server ISNULL 함수

5. 집계 함수가 있는 ISNULL

SQL Server에서는 ISNULL 함수와 함께 SUM, AVG와 같은 집계 함수를 사용할 수도 있습니다. 우리가 급여의 합계 Employee 열이 존재하며 급여 열에 NULL이 있으면 급여를 추가하기 전에 25000으로 대체됩니다.

집계 방법을 수행하기 전에 아래 쿼리를 사용하여 ID가 ​​2인 직원 급여를 NULL로 업데이트합니다.

 UPDATE Employee SET Salary = NULL WHERE ID=2; 

아래 예에서는 먼저 NULL 값을 25000으로 바꾼 다음 SUM 함수를 수행했습니다. 아래 출력을 참조하세요.

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

실행 후에는 다음과 같은 결과가 출력됩니다.

SQL Server ISNULL 함수

마찬가지로 ISNULL 함수를 사용하여 NULL 값을 대체한 다음 평균 값을 다음과 같이 반환할 수 있습니다. AVG() 함수 . 아래 설명을 참조하세요.

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

실행 후에는 다음과 같은 결과가 출력됩니다.

분수로 0.0625
SQL Server ISNULL 함수

SQL Server ISNULL과 IS NULL의 차이점

ISNULL 및 IS NULL 함수는 SQL Server에서 모두 다릅니다. ISNULL 함수는 필요할 때 사용합니다. NULL 값을 대체 지정된 값으로. 반면에 우리는 IS NULL 함수를 사용하고 싶을 때 사용합니다. NULL 값 식별 테이블에.

차이점을 설명하기 위해 아래 예를 살펴 보겠습니다. .

'에서 직원 데이터를 가져오고 싶다고 가정해 보겠습니다. 직원' Salary 열에 NULL 값이 포함된 테이블입니다. 이러한 유형의 정보를 얻으려면 IS NULL 함수를 사용해야 합니다. 어디 조항은 다음과 같습니다:

 SELECT * FROM Employee WHERE Salary IS NULL; 

급여가 NULL인 직원 세부 정보를 반환합니다.

SQL Server ISNULL 함수

이제 ISNULL 함수를 사용하여 이러한 유형의 정보를 얻으려고 하면 SQL Server는 다음을 통해 오류 :

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

오류는 다음과 같습니다.

SQL Server ISNULL 함수

따라서 SQL Server에서는 ISNULL을 사용하여 NULL 값을 찾는 것을 허용하지 않습니다.