ISNULL(Transact-SQL)
적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW) Microsoft Fabric의 SQL 분석 엔드포인트 Microsoft Fabric의 웨어하우스
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 제공되고 replacement_value 제공되지 ISNULL
않으면 int를 반환합니다.
설명
check_expression 값이 아닌 NULL
경우 반환됩니다. 그렇지 않으면 replacement_value 형식이 다른 경우 암시적으로 check_expression 형식으로 변환된 후에 반환됩니다. replacement_value는 replacement_value가 check_expression보다 긴 경우 잘릴 수 있습니다.
참고 항목
COALESCE를 사용하여 null이 아닌 첫 번째 값을 반환합니다.
예제
이 문서의 Transact-SQL 코드 샘플은 AdventureWorks2022
또는 AdventureWorksDW2022
샘플 데이터베이스를 사용하며, 이는 Microsoft SQL Server 예시 및 커뮤니티 프로젝트(Microsoft SQL Server Samples and Community Projects) 홈 페이지에서 다운로드할 수 있습니다.
A. AVG에서 ISNULL 사용
다음 예에서는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 테이블 열 Product
에 있는 모든 NULL
항목의 Weight
값을 50
대체합니다.
USE AdventureWorks2022;
GO
SELECT AVG(ISNULL(Weight, 50))
FROM Production.Product;
GO
결과 집합은 다음과 같습니다.
59.79
B. ISNULL 사용
다음 예에서는 AdventureWorks2022
에서 모든 특별 행사에 대한 설명, 할인율, 최소 수량 및 최대 수량을 선택하는 방법을 보여 줍니다. 특정 특별 제품의 NULL
MaxQty
최대 수량이면 결과 집합에 표시된 것입니다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 |
다음 예제에서는 에 대한 Color
값을 문자열None
로 바꾸는 NULL
데 사용합니다ISNULL
.
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 절에서 테스트
값을 찾는 NULL
데 사용하지 ISNULL
마세요. 대신 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 사용
다음 예에서는 샘플 표에 있는 모든 제품의 평균 무게를 구하는 방법을 보여 줍니다. 테이블 열 Product
에 있는 모든 NULL
항목의 Weight
값을 50
대체합니다.
-- Uses AdventureWorksDW
SELECT AVG(ISNULL(Weight, 50))
FROM dbo.DimProduct;
결과 집합은 다음과 같습니다.
52.88
E. ISNULL 사용
다음 예제에서는 열 MinPaymentAmount
의 값을 테스트 NULL
하고 해당 행의 값을 0.00
표시하는 데 사용합니다ISNULL
.
-- 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;