복붙노트

[SQL] SQL WITH 절 예 [중복]

SQL

SQL WITH 절 예 [중복]

나는 WITH 절과 절을의 목적을 사용하는 방법을 이해하려고 노력했다.

모든 나는 WITH 절은 일반 서브 쿼리를 대체했다 이해했다.

사람이 세부에있는 작은 예제 나에게 이것을 설명 할 수 있습니까?

해결법

  1. ==============================

    1.WITH 절 SQL은이 데이터베이스를 해제 9i의 오라클에서 오라클에 의해 소개되었다. WITH 절 SQL은 서브 쿼리 블록에 이름 주요 SQL 쿼리 내에서 여러 장소에서 참조 할 수있다 (또한 하위 쿼리 리팩토링이라는 프로세스)를 제공 할 수 있습니다. 이 인라인 뷰 또는 테이블이었던 것처럼 서브 쿼리에 할당 된 이름을 치료한다. WITH 절 SQL은 기본적으로 드롭 인 교체 일반 서브 쿼리이다.

    WITH 절 SQL은이 데이터베이스를 해제 9i의 오라클에서 오라클에 의해 소개되었다. WITH 절 SQL은 서브 쿼리 블록에 이름 주요 SQL 쿼리 내에서 여러 장소에서 참조 할 수있다 (또한 하위 쿼리 리팩토링이라는 프로세스)를 제공 할 수 있습니다. 이 인라인 뷰 또는 테이블이었던 것처럼 서브 쿼리에 할당 된 이름을 치료한다. WITH 절 SQL은 기본적으로 드롭 인 교체 일반 서브 쿼리이다.

    구문은 SQL WITH 절

    하나의 하위 쿼리 별칭을 사용하는 경우 다음은 WITH 절 SQL의 구문입니다.

    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_NAME의 발생은 AS 절 후 하위 쿼리 줄 것입니다 의미있는 이름이다. 각 하위 쿼리는 WITH 문에 대한 쉼표 예로 구분해야합니다. 쿼리의 나머지는 간단하고 복잡한 SQL SELECT 쿼리에 대한 표준 형식을 따르십시오.

    자세한 내용은 다음을 http://www.brighthub.com/internet/web-development/articles/91893.aspx

  2. ==============================

    2.이것은 완전히 여기에 답하고있다.

    이것은 완전히 여기에 답하고있다.

    하위 쿼리 인수 분해가 작동하고, 마크의 예를 어떻게 선택에 참조 오라클의 문서를 확인합니다 :

    WITH employee AS (SELECT * FROM Employees)
    SELECT * FROM employee WHERE ID < 20
    UNION ALL
    SELECT * FROM employee WHERE Sex = 'M'
    
  3. from https://stackoverflow.com/questions/12552288/sql-with-clause-example by cc-by-sa and MIT license