적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
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이 아닌 첫 번째 값을 반환합니다.
예제
이 글의 코드 샘플은 Azure Data SQL Samples Repository GitHub 저장소에서 다운로드할 수 있는 , , AdventureWorksDW2025또는 AdventureWorksLT2025 샘플 데이터베이스를 사용합니다AdventureWorks2025.
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
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;