티스토리 뷰

728x90

NULLIF 구문은 2개의 인자를 비교하여 동일할 경우 NULL, 동일하지 않을 경우 첫 번째 값을 반환한다.

경우에 따라 CASE 구문을 대체할 수 있다.

SELECT NULLIF(1, 1) --NULL
SELECT NULLIF(1, 2) --1

아래처럼 budgets 테이블을 생성한 후 current_year, previous_year의 값을 입력한다.

COALESCE 구문을 사용하여 NULL이 아닌 값을 구하고, NULLIF 구문을 사용하여 해당 값이 0과 동일하면 0을 아니면 COALESCE 구문을 사용하여 미리 구한 값을 출력하도록 한다.

CREATE TABLE dbo.budgets  
(  
   dept            TINYINT   IDENTITY,  
   current_year    DECIMAL   NULL,  
   previous_year   DECIMAL   NULL  
);  
INSERT budgets VALUES(100000, 150000);  
INSERT budgets VALUES(NULL, 300000);  
INSERT budgets VALUES(0, 100000);  
INSERT budgets VALUES(NULL, 150000);  
INSERT budgets VALUES(300000, 250000);  
GO    

SELECT * FROM budgets

SELECT DEPT, NULLIF(COALESCE(current_year, previous_year), 0.00) [Budget]  
FROM budgets;  
GO

SELECT AVG(NULLIF(COALESCE(current_year, previous_year), 0.00)) [Average Budget]  
FROM budgets;  
GO

728x90
LIST
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함