ISNULL(Transact-SQL)

적용 대상: Microsoft Fabric의 Microsoft FabricWarehouse에 있는 SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsPlatform System(PDW) SQL 분석 엔드포인트

NULL을 지정된 대체 값으로 바꿉니다.

Transact-SQL 구문 표기 규칙

Syntax

ISNULL ( check_expression , replacement_value )  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

check_expression
NULL 여부를 검사할 입니다. check_expression은 임의 형식이 될 수 있습니다.

replacement_value
check_expression이 NULL인 경우 반환할 식입니다. replacement_value는 암시적으로 check_expression 형식으로 변환되는 형식이어야 합니다.

반환 형식

check_expression 식과 같은 유형을 반환합니다. 리터럴 NULL이 check_expression으로 제공된 경우 replacement_value 데이터 형식을 반환합니다. 리터럴 NULL이 check_expression으로 제공되고 replacement_value가 제공되지 않은 경우 int를 반환합니다.

설명

NULL이 아닐 경우 check_expression 값이 반환되고, 그렇지 않고 형식이 다른 경우는 check_expression 형식으로 암시적으로 변환된 후 replacement_value가 반환됩니다. replacement_valuereplacement_valuecheck_expression보다 긴 경우 잘릴 수 있습니다.

참고

첫 번째 Null이 아닌 값을 반환하려면 COALESCE(Transact-SQL)를 사용합니다.

A. AVG와 함께 ISNULL 사용

다음 예에서는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 50 테이블의 Weight 열에 있는 모든 NULL 항목을 Product 값으로 대체합니다.

USE AdventureWorks2022;  
GO  
SELECT AVG(ISNULL(Weight, 50))  
FROM Production.Product;  
GO  

결과 집합은 다음과 같습니다.

-------------------------- 
59.79  
 
(1 row(s) affected)

B. ISNULL 사용

다음 예에서는 AdventureWorks2022에서 모든 특별 행사에 대한 설명, 할인율, 최소 수량 및 최대 수량을 선택하는 방법을 보여 줍니다. 특정한 특별 행사에 대한 최대 수량이 NULL인 경우 결과 집합의 MaxQty0.00으로 표시됩니다.

USE AdventureWorks2022;  
GO  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'  
FROM Sales.SpecialOffer;  
GO  

결과 집합은 다음과 같습니다.

Description DiscountPct MinQty 최대 수량
No Discount 0.00 0 0
Volume Discount 0.02 11 14
Volume Discount 0.05 15 4
Volume Discount 0.10 25 0
Volume Discount 0.15 41 0
Volume Discount 0.20 61 0
Mountain-100 Cl 0.35 0 0
Sport Helmet Di 0.10 0 0
Road-650 Overst 0.30 0 0
Mountain Tire S 0.50 0 0
Sport Helmet Di 0.15 0 0
LL Road Frame S 0.35 0 0
Touring-3000 Pr 0.15 0 0
Touring-1000 Pr 0.20 0 0
Half-Price Peda 0.50 0 0
Mountain-500 Si 0.40 0 0

(16 row(s) affected)

C. WHERE 절에서 NULL 테스트

NULL 값을 찾는 데 ISNULL을 사용하지 마세요. 대신 IS NULL을 사용합니다. 다음 예에서는 무게 열에 NULL이 있는 모든 제품을 찾는 방법을 보여 줍니다. ISNULL 사이에 공백이 있습니다.

USE AdventureWorks2022;  
GO  
SELECT Name, Weight  
FROM Production.Product  
WHERE Weight IS NULL;  
GO  

예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)

D. AVG와 함께 ISNULL 사용

다음 예에서는 샘플 표에 있는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 50 테이블의 Weight 열에 있는 모든 NULL 항목을 Product 값으로 대체합니다.

-- Uses AdventureWorks  
  
SELECT AVG(ISNULL(Weight, 50))  
FROM dbo.DimProduct;  

결과 집합은 다음과 같습니다.

--------------------------   
52.88   

E. ISNULL 사용

다음 예에서는 ISNULL을 사용하여 MinPaymentAmount 열에 있는 NULL 값을 테스트하고 해당 열의 0.00 값을 표시합니다.

-- Uses AdventureWorks  
  
SELECT ResellerName,   
       ISNULL(MinPaymentAmount,0) AS MinimumPayment  
FROM dbo.DimReseller  
ORDER BY ResellerName;  
  

다음은 결과 집합의 일부입니다.

ResellerName MinimumPayment
자전거 연합 0.0000
자전거 매장 0.0000
사이클 상점 0.0000
대형 자전거 회사 0.0000
일반 자전거 상점 200.0000
허용되는 판매 및 서비스 0.0000

F. WHERE 절에서 NULL 테스트를 위해 IS NULL 사용

다음 예에서는 NULL 열에 Weight이 있는 모든 제품을 찾는 방법을 보여 줍니다. ISNULL 사이에 공백이 있습니다.

-- Uses AdventureWorks  
  
SELECT EnglishProductName, Weight  
FROM dbo.DimProduct  
WHERE Weight IS NULL;  

참고 항목

식(Transact-SQL)
IS NULL(Transact-SQL)
시스템 함수(Transact-SQL)
WHERE(Transact-SQL)
COALESCE(Transact-SQL)