Programing

SQL WITH 절 예

lottogame 2020. 5. 19. 08:04
반응형

SQL WITH 절 예


중복 가능성 :
CTE와 하위 쿼리의 차이점은 무엇입니까?

WITH조항 을 사용하는 방법 과 조항의 목적 을 이해하려고했습니다 WITH.

내가 이해 한 것은이 WITH절이 정상적인 하위 쿼리를 대체한다는 것입니다.

누구든지 이것을 작은 예를 통해 자세히 설명 할 수 있습니까?


SQL WITH 절은 Oracle 9i 릴리스 2 데이터베이스에서 Oracle에 의해 도입되었습니다. SQL WITH 절을 사용하면 서브 쿼리 블록에 이름 (서브 쿼리 리팩토링이라고도하는 프로세스)을 지정할 수 있으며, 이는 메인 SQL 쿼리 내의 여러 위치에서 참조 될 수 있습니다. 하위 쿼리에 할당 된 이름은 인라인 뷰 또는 테이블 인 것처럼 처리됩니다. SQL WITH 절은 기본적으로 일반 하위 쿼리를 대체하는 대체 항목입니다.

SQL WITH 절에 대한 구문

다음은 단일 서브 쿼리 별명을 사용할 때 SQL WITH 절의 구문입니다.

WITH <alias_name> AS (sql_subquery_statement)
SELECT column_list FROM <alias_name>[,table_name]
[WHERE <join_condition>]

여러 개의 하위 쿼리 별칭을 사용하는 경우 구문은 다음과 같습니다.

WITH <alias_name_A> AS (sql_subquery_statement),
<alias_name_B> AS(sql_subquery_statement_from_alias_name_A
or sql_subquery_statement )
SELECT <column_list>
FROM <alias_name_A>, <alias_name_B> [,table_names]
[WHERE <join_condition>]

위의 구문 문서에서 발생은 alias_nameAS 절 다음에 하위 쿼리에 제공 할 의미있는 이름입니다. 각 하위 쿼리는 WITH 문에 대해 쉼표로 구분해야합니다 . 나머지 쿼리는 단순하고 복잡한 SQL SELECT 쿼리에 대한 표준 형식을 따릅니다.

자세한 정보 : http://www.brighthub.com/internet/web-development/articles/91893.aspx


이것이 여기 에 완전히 대답 되었습니다 .

참조 SELECT에 대한 오라클의 문서는 하위 쿼리 인수 분해가 작동하고, 마크의 예 방식을 볼 수 있습니다 :

WITH employee AS (SELECT * FROM Employees)
SELECT * FROM employee WHERE ID < 20
UNION ALL
SELECT * FROM employee WHERE Sex = 'M'

참고 URL : https://stackoverflow.com/questions/12552288/sql-with-clause-example

반응형