ISNULL(Transact-SQL)

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

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

ISNULL ( check_expression , replacement_value )

인수

  • check_expression
    NULL 여부를 검사할 입니다. check_expression은 모든 형식을 사용할 수 있습니다.

  • replacement_value
    check_expression이 NULL일 경우 반환할 식입니다. replacement_value는 암시적으로 check_expresssion 형식으로 변환할 수 있는 형식이어야 합니다.

반환 형식

check_expression과 동일한 형식을 반환합니다. 리터럴 NULL이 check_expression으로 제공되는 경우 replacement_value의 데이터 형식을 반환합니다. 리터럴 NULL이 check_expression으로 제공되고 replacement_value가 제공되지 않으면 int를 반환합니다.

주의

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

[!참고]

NULL이 아닌 첫 번째 값을 반환하려면 COALESCE(Transact-SQL)를 사용하십시오.

1.AVG와 함께 ISNULL 사용

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

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

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

--------------------------

59.79

(1 row(s) affected)

2.ISNULL 사용

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

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

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

Description       DiscountPct       MinQty      Max Quantity

---------------   -------------     --------    ---------------

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)

3.WHERE 절에서 NULL 테스트

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

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

참고 항목

참조

식(Transact-SQL)

IS [NOT] NULL(Transact-SQL)

시스템 함수(Transact-SQL)

WHERE(Transact-SQL)

COALESCE(Transact-SQL)