반응형
단일 SQL에 여러 "WITH AS"를 포함할 수 있습니까? - Oracle SQL
아주 간단한 질문이 있습니다.Oracle은 단일 SQL 문에 여러 "WITH AS"를 허용합니까?
예:
WITH abc AS( select ......)
WITH XYZ AS(select ....) /*This one uses "abc" multiple times*/
Select .... /*using XYZ multiple times*/
같은 쿼리를 여러 번 반복함으로써 쿼리를 실행할 수 있지만, 이 쿼리를 실행하고 싶지 않고 "WITH AS"를 활용합니다.간단한 요구 사항처럼 보이지만 Oracle에서는 다음을 수행할 수 없습니다.
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
Common Table Expressions에서 초기화 순서를 따릅니다.
Aditea 또는 기타 예에서는 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' 카테고리의 다른 글
ORA-00942: 테이블 또는 뷰가 존재하지 않음(별도의 SQL에서는 동작하지만 Oracle 함수에서는 동작하지 않음) (0) | 2023.03.19 |
---|---|
리액션이 있는 루프에는 어떻게 사용합니까? (0) | 2023.03.19 |
웹 팩: 각도 자동 검출 jQuery를 만들고 jqLite 대신 angular.element로 사용하는 방법 (0) | 2023.03.19 |
컨슈머에서 프로바이더의 컨텍스트 값을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.03.19 |
jPOST 매개 변수로 문자열 전송 쿼리 (0) | 2023.03.19 |