[SQL] SQL WITH 절 예 [중복]
SQLSQL WITH 절 예 [중복]
나는 WITH 절과 절을의 목적을 사용하는 방법을 이해하려고 노력했다.
모든 나는 WITH 절은 일반 서브 쿼리를 대체했다 이해했다.
사람이 세부에있는 작은 예제 나에게 이것을 설명 할 수 있습니까?
해결법
-
==============================
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.이것은 완전히 여기에 답하고있다.
이것은 완전히 여기에 답하고있다.
하위 쿼리 인수 분해가 작동하고, 마크의 예를 어떻게 선택에 참조 오라클의 문서를 확인합니다 :
WITH employee AS (SELECT * FROM Employees) SELECT * FROM employee WHERE ID < 20 UNION ALL SELECT * FROM employee WHERE Sex = 'M'
from https://stackoverflow.com/questions/12552288/sql-with-clause-example by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 데이터베이스에 숫자의 정밀도와 스케일을 해석합니까? (0) | 2020.05.07 |
---|---|
[SQL] 클라이언트 IP 주소에 대한 최대 길이 [중복] (0) | 2020.05.07 |
[SQL] SQL Server의 문을 선택 중첩 (0) | 2020.05.07 |
[SQL] LEFT 및 RIGHT는 SQL OUTER 조인 대 LEFT 및 RIGHT 차이는 JOIN [중복] (0) | 2020.05.07 |
[SQL] ID를 다른 테이블에서 일치하지 않는 삭제 SQL 행 (0) | 2020.05.06 |