반응형
단일 SQL에 여러 "WITH AS"를 사용할 수 있습니까?-Oracle SQL
저는 매우 간단한 질문을했습니다. 오라클은 단일 SQL 문에서 여러 "WITH AS"를 허용합니까?
예:
WITH abc AS( select ......)
WITH XYZ AS(select ....) /*This one uses "abc" multiple times*/
Select .... /*using XYZ multiple times*/
동일한 쿼리를 여러 번 반복하여 쿼리가 작동하도록 만들 수 있지만 그렇게하고 싶지 않고 "WITH AS"를 활용합니다. 간단한 요구 사항처럼 보이지만 오라클은 나를 허용하지 않습니다.
ORA-00928 : SELECT 키워드가 없습니다
다음과 같이 할 수 있습니다.
WITH abc AS( select
FROM ...)
, XYZ AS(select
From abc ....) /*This one uses "abc" multiple times*/
Select
From XYZ.... /*using abc, XYZ multiple times*/
올바른 구문은-
with t1
as
(select * from tab1
where conditions...
),
t2
as
(select * from tab2
where conditions...
(you can access columns of t1 here as well)
)
select * from t1, t2
where t1.col1=t2.col2;
그래 넌 할수있어...
WITH SET1 AS (SELECT SYSDATE FROM DUAL), -- SET1 initialised
SET2 AS (SELECT * FROM SET1) -- SET1 accessed
SELECT * FROM SET2; -- SET2 projected
10/29/2013 10:43:26 AM
공통 테이블 표현식에서 초기화해야하는 순서를 따릅니다.
Aditya 또는 다른 사람, 예에서 t2와 t1을 결합하거나 일치시킬 수 있습니까?
with t1 as (select * from AA where FIRSTNAME like 'Kermit'),
t2 as (select * from BB B join t1 on t1.FIELD1 = B.FIELD1)
조인에 WHERE 만 지원되는지 또는 두 번째 WITH 엔터티 내에서 어떤 조인 접근이 지원되는지 확실하지 않습니다. 일부 예제에는 WITH 절의 "아래"선택 본문에 WHERE A = B가 있습니다.
이러한 WITH 선언을 따르는 오류는 B의 식별자 (필드 이름)가 인식되지 않고 나머지 SQL 본문에 있다는 것입니다. 따라서 WITH 구문은 정상적으로 실행되는 것처럼 보이지만 t2의 결과에 액세스 할 수 없습니다.
참고 URL : https://stackoverflow.com/questions/19654494/can-we-have-multiple-with-as-in-single-sql-oracle-sql
반응형
'Programing' 카테고리의 다른 글
Google API 클라이언트로 토큰을 새로 고치는 방법은 무엇입니까? (0) | 2020.09.13 |
---|---|
GitHub : "wip"브랜치 란 무엇입니까? (0) | 2020.09.13 |
Python을 사용하여 네이티브 iPhone 앱을 작성할 수 있습니까? (0) | 2020.09.13 |
C에서 enum 유형의 변수를 문자열로 사용하는 쉬운 방법은 무엇입니까? (0) | 2020.09.13 |
교착 상태로 인한 SqlException을 잡는 방법은 무엇입니까? (0) | 2020.09.13 |