with 구문으로 임시테이블 형식으로 사용할때
아래와 같은 예가 있다면
WITH BookTemp AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Price ASC) AS
'No',
Title, Writer, Price
FROM Book
)
SELECT *
FROM
BookTemp WHERE No = 3
여기까지는 문제가 없는데 하나의 문장을 더 추가해서 BookTemp 라는 테이블을 2개 이상 연속으로 사용할수는 없나요?
WITH BookTemp AS
(
SELECT
ROW_NUMBER() OVER(ORDER BY Price ASC) AS 'No',
Title, Writer, Price
FROM Book
)
SELECT *
FROM BookTemp WHERE No = 3
SELECT *
FROM BookTemp WHERE No = 5
위 구문에서는
SELECT *
FROM BookTemp WHERE No in (3,5) 이렇게 해도 되겠지만
값을 구분해서 받아야 할 필요가 있어서요~
with 절 에는 하나의 select 구문만 올수 있습니다.
분리된 형태의 select문은 올수 없구요...
동일한 with 구문 까지 두번 기술 하셔야 합니다.
그렇지 않는경우는 witth 구문의 내용을 임시 테이블로 저장후 하셔야 할듯 합니다.