쿼리를 작성할때 과도한 서브 쿼리는
메인 쿼리의 더욱 복작하게 만든다.
이럴때 WITH AS 구문을 사용하면 그나마 복잡한 부분의 쿼리를
분리해 낼 수 있을 뿐만 아니라
반복적으로 쓰이는 서브 쿼리라면 성능의 향상을 덤으로 얻을 수 있다.
방법은 간단하다.
메인 쿼리 위에 WITH AS 구문을 사용해 서브 쿼리를 옮겨 놓는 것이다.
WITH 이름 AS (
SELECT ...
FROM ...
WHERE ...
)
SELECT
....
FROM 이름
WHERE
....
서브쿼리가 여러개라 하더라도 걱정할 필요 없다.
각 서브쿼리를 , 로 구분하여 추가해 주면 된다.
WITH 이름1 AS (
SELECT 문
),
이름2 AS (
SELECT 문
)
SELECT
...
FROM 이름1
LEFT OUTER JOIN 이름2
ON ....
WHERE
....
주의할 점음 WITH 키워드는 처음에 한 번만 쓰일뿐이란 것이다.
반응형
'개발 > DB' 카테고리의 다른 글
[DB] 한 컬럼에 여러개의 결과 표현하기 (0) | 2021.07.28 |
---|---|
DB2 에러 정리 (0) | 2021.04.16 |