ISNULL(Transact-SQL)
적용 대상: Microsoft Fabric의 Microsoft Fabric Warehouse에 있는 SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System(PDW) SQL 분석 엔드포인트
NULL을 지정된 대체 값으로 바꿉니다.
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_value는 replacement_value가 check_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인 경우 결과 집합의 MaxQty
는 0.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
이 있는 모든 제품을 찾는 방법을 보여 줍니다. IS
와 NULL
사이에 공백이 있습니다.
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
이 있는 모든 제품을 찾는 방법을 보여 줍니다. IS
와 NULL
사이에 공백이 있습니다.
-- 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)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기