프로그래머스 SQL 테스트를 쫌쫌따리 해보다가 못보던 개념을 발견했다 ㅎㅎ
참고
프로그래머스 문제
Common table expression의 약자로 공식 다큐먼트와 다르게 나는 가상의 테이블을 만드는것으로 이해 하였다. virtual table을 만들어 다양한 연산을 가능하게 한것으로 보인다.
예를 들어
WITH cte AS #새로운 테이블을 만든다
(
SELECT 1 AS col1, 2 AS col2 #첫번째 열을 1,2로 설정
UNION ALL #UNION부분은 필수로 들어가야 한다고 한다
SELECT 3,4 #3,4를 아래에다가 같다가 붙여라
)
SELECT col1, col2 FROM cte;
col1 | col2 |
1 | 2 |
3 | 4 |
이런식으로 사용되는것 같다.
저기 SELECT 3,4 아래에 FROM cte WHERE col1 < 23을 하면 반복문처럼 쓸수 있는듯 하다
SELECT 1 AS col1
UNION ALL
SELECT col1+1 #이 부분을 활용하면 규칙적인 테이블을 만들 수 있다 왕 신기
FROM cte #자신을 참조하려면 WITH RECURSIVE cte AS 구문을 사용해야 한다
where col < 6
col1 |
1 |
2 |
3 |
4 |
5 |
6 |
[MongoDB] 명령어모음 (0) | 2023.04.06 |
---|---|
[Oracle] 시간 / DATE / 지금으로부터 16시간 차이나는 값만 가지고오기 .. (0) | 2022.08.18 |
[Oracle] Oracle에서 listagg를 사용해보자 (0) | 2022.02.28 |