WITH를 사용하여 여러 작업


16

WITH문을 사용하여 여러 작업을 실행하는 방법이 있습니까?

같은 것

WITH T AS
(
  SELECT * FROM Tbl
)
BEGIN
  OPEN P_OUTCURSOR FOR
    SELECT * FROM T;

  SELECT COUNT(*) INTO P_OUTCOUNT FROM T;
END;

일부 데이터와 그 수를 선택하고 싶습니다 ...

답변:


17

CTE 뒤에는 한 가지만 진술 할 수 있습니다. 그러나 이전 CTE를 기반으로 후속 CTE를 정의 할 수 있습니다.

WITH t1 AS (
   SELECT a, b, c
   FROM table1
)
, t2 AS (
   SELECT b
   FROM t1
   WHERE a = 5
)
SELECT *
FROM t2;

행을 계산하고 동일한 결과 집합에서 참조 커서를 채우려 고하면 다음 중 하나를 수행하는 것이 더 적절할 수 있습니다.

  • 보기를 만들다
  • 임시 테이블의 임시 결과

마지막으로 쿼리가 충분히 간단한 경우에는 카운트에 대해 한 번, 커서에 대해 다시 쓰십시오. 이 경우 단순성과 가독성은 DRY 원칙 보다 우선합니다 .


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.