적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
분석 플랫폼 시스템(PDW)
Microsoft Fabric의 SQL 분석 엔드포인트
Microsoft Fabric의 웨어하우스
Microsoft Fabric의 SQL 데이터베이스
NULL 지정된 대체 값으로 바꿉니다.
구문
ISNULL ( check_expression , replacement_value )
인수
check_expression
확인할 식입니다NULL.
check_expression은 임의 형식이 될 수 있습니다.
replacement_value
check_expression 경우 반환할 식입니다NULL.
replacement_value는 암시적으로 check_expression 형식으로 변환되는 형식이어야 합니다.
반환 형식
check_expression 식과 같은 유형을 반환합니다. 리터럴 NULL 이 check_expression 제공되면 replacement_valueISNULL 데이터 형식을 반환합니다. 리터럴 NULL 이 check_expression 제공되고 int를 반환합니다.
설명
check_expression 값이 아닌 NULL경우 반환됩니다. 그렇지 않으면 replacement_value 형식이 다른 경우 암시적으로 check_expression 형식으로 변환된 후에 반환됩니다.
replacement_value는 replacement_value가 check_expression보다 긴 경우 잘릴 수 있습니다.
참고 항목
COALESCE를 사용하여 null이 아닌 첫 번째 값을 반환합니다.
예제
이 문서의 코드 샘플은 AdventureWorks2025 또는 AdventureWorksDW2025 샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.
A. AVG에서 ISNULL 사용
다음 예에서는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 테이블 열 50 에 있는 모든 NULL 항목의 Weight 값을 Product 대체합니다.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
결과 집합은 다음과 같습니다.
59.79
B. ISNULL 사용
다음 예에서는 AdventureWorks2025에서 모든 특별 행사에 대한 설명, 할인율, 최소 수량 및 최대 수량을 선택하는 방법을 보여 줍니다. 특정 특별 제품의 NULLMaxQty 최대 수량이면 결과 집합에 표시된 것입니다0.00.
USE AdventureWorks2022;
GO
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
FROM Sales.SpecialOffer;
GO
결과 집합은 다음과 같습니다.
| 설명 | DiscountPct | MinQty | 최대 수량 |
|---|---|---|---|
No Discount |
0.00 | 0 | 0 |
Volume Discount 11 to 14 |
0.02 | 11 | 14 |
Volume Discount 15 to 24 |
0.05 | 15 | 24 |
Volume Discount 25 to 40 |
0.10 | 25 | 40 |
Volume Discount 41 to 60 |
0.15 | 41 | 60 |
Volume Discount over 60 |
0.20 | 61 | 0 |
Mountain-100 Clearance Sale |
0.35 | 0 | 0 |
Sport Helmet Discount-2002 |
0.10 | 0 | 0 |
Road-650 Overstock |
0.30 | 0 | 0 |
Mountain Tire Sale |
0.50 | 0 | 0 |
Sport Helmet Discount-2003 |
0.15 | 0 | 0 |
LL Road Frame Sale |
0.35 | 0 | 0 |
Touring-3000 Promotion |
0.15 | 0 | 0 |
Touring-1000 Promotion |
0.20 | 0 | 0 |
Half-Price Pedal Sale |
0.50 | 0 | 0 |
Mountain-500 Silver Clearance Sale |
0.40 | 0 | 0 |
다음 예제에서는 에 대한 ISNULL값을 문자열NULL로 바꾸는 Color 데 사용합니다None.
USE AdventureWorks2022;
GO
SELECT ProductID,
Name,
ProductNumber,
ISNULL(Color, 'None') AS Color
FROM Production.Product;
다음은 결과 집합의 일부입니다.
| ProductID | 이름 | ProductNumber | 색 |
|---|---|---|---|
| 1 | Adjustable Race |
AR-5381 | None |
| 2 | Bearing Ball |
BA-8327 | None |
| 3 | BB Ball Bearing |
BE-2349 | None |
| 4 | Headset Ball Bearings |
BE-2908 | None |
| 316 | Blade |
BL-2036 | None |
| 317 | LL Crankarm |
CA-5965 | 검정 |
| 318 | ML Crankarm |
CA-6738 | 검정 |
| 319 | HL Crankarm |
CA-7457 | 검정 |
C.
NULL WHERE 절에서 테스트
값을 찾는 ISNULL 데 사용하지 NULL 마세요. 대신 IS NULL를 사용하세요. 다음 예에서는 무게 열에 NULL이 있는 모든 제품을 찾는 방법을 보여 줍니다.
IS와 NULL 사이에 공백이 있습니다.
USE AdventureWorks2022;
GO
SELECT Name, Weight
FROM Production.Product
WHERE Weight IS NULL;
GO
예: Azure Synapse Analytics 및 분석 플랫폼 시스템(PDW)
D. AVG에서 ISNULL 사용
다음 예에서는 샘플 표에 있는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 테이블 열 50 에 있는 모든 NULL 항목의 Weight 값을 Product 대체합니다.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
결과 집합은 다음과 같습니다.
52.88
E. ISNULL 사용
다음 예제에서는 열 ISNULL 의 값을 테스트 NULL 하고 해당 행의 값을 MinPaymentAmount 표시하는 데 사용합니다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. IS NULL을 사용하여 WHERE 절에서 NULL 테스트
다음 예에서는 NULL 열에 Weight이 있는 모든 제품을 찾는 방법을 보여 줍니다.
IS와 NULL 사이에 공백이 있습니다.
-- Uses AdventureWorksDW
SELECT EnglishProductName, Weight
FROM dbo.DimProduct
WHERE Weight IS NULL;