데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
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 구문의 내용을 임시 테이블로 저장후 하셔야 할듯 합니다.