본문 바로가기
AI/데이터베이스\SQL

[SQL / PostgresSQL] CASE, COALESCE , CAST, NULLIF , views

by 까다로운오리 2022. 7. 11.

CASE

-특정 조건이 충족되었을 때 실행하기 위해 case를 사용한다.

-IF/ELSE와 유사하다. 

 

 

CASE
	WHEN condition1 THEN result1
   	WHEN condition2 THEN result2
    ELSE some_other_result
END

 

#1

SELECT a,
CASE WHEN a = 1 THEN 'one'
	WHEN a = 2 THEN 'two'
	ELSE 'other' AS label
END
FROM test;

#2
SELECT a,
CASE a WHEN 1 THEN 'one'
	WHEN 2 THEN 'two'
	ELSE 'other' AS label
END
FROM test;
a label
1 one
2 two

 

 

실습

 

 


COALESCE 

 

 

-NULL이 아닌 첫번째 인자 값을 반환한다.

 

ex1)

COALESCE(NULL, 'A') 
--> A


COALESCE(NULL, NULL , 'B')
--> B


COALESCE('A', NULL, 'B')
--> A

 

 

ex2)

Item price discount
a 100 20
b 300 null
c 200 10

 

SELECT Item, (price - COALESCE(discount,0)) AS final FROM table
Item final
a 80
b 300
c 190

 

 


CAST 

 

데이터 타입을 바꾸는 명령

#일반적인 CAST func
SELECT CAST('5' AS INTEGER)

#PostgreSQL CAST operator
SELECT '5'::INTEGER

 

실습

데이터 타입이 맞지 않을 때는 에러가 뜨기 때문에 CAST로 데이터 타입을 바꿔주어 출력한다.

 

 


NULLIF 

 

두개의 값을 넣어 두 값이 같으면 NULL 아니면 첫번째 값이 도출된다.

 

 

실습

 

만약 B를 지우면..

 

NULLIF를 이용하자

 

 

**nullif를 많이 쓰는 경우를 알아보자.

 


VIEWS

 

- 프로젝트에서 여러 테이블의 column들을 반복해서 사용하는 경우 views를 사용하면  편하다.

- 간단한 명령으로 재빨리 표를 보여준다.

- 뷰는 물리적 데이터가 아니다.

CREATE VIEW 뷰이름 AS
SELECT column1, column2 FROM TableA
INNER JOIN  TableB
ON TableA.column3 = TableB.column3


DROP VIEW IF EXISTS 뷰이름


ALTER VIEW 뷰이름 RENAME to 변경할뷰이름

 

 

 

 

https://www.udemy.com/course/best-sql-2022/learn/lecture/2909707