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
'AI > 데이터베이스\SQL' 카테고리의 다른 글
[SQL / postgreSQL] 데이터 유형 , 제약조건 (Constraints), CREATE , ALTER, DELETE, UPDATE, INSERT, DROP, CHECK 제약조건 (0) | 2022.07.11 |
---|---|
데이터베이스(2) (3) | 2022.03.21 |
데이터베이스(1) (0) | 2022.03.21 |
[SQL / postgreSQL] 고급 SQL명령 ( TimeStamp, TO_CHAR, 서브쿼리(Sub-query), Self-Join) (2) | 2022.03.08 |
[SQL / postgreSQL] SQL 기초 (AS, UNION, JOIN - INNER JOIN, OUTER JOIN, LEFT JOIN, RIGHT JOIN) (0) | 2022.02.24 |