요약:이 튜토리얼에서,당신은 당신에 대해 배울 것이 일반적인 표현 또는 CTE 에서 SQL 사용하여 서버WITH
clause.
SQL Server 의 CTE 소개
CTE 는 공통 테이블 표현식을 의미합니다. CTE 을 정의할 수 있는 임시라는 결과는 세트를 사용할 수 있는 일시적으로 실행의 범위는 다음과 같은 명령문을SELECT
,INSERT
,UPDATE
,DELETE
또는MERGE
.,
는 다음과 같습니다 일반적인 구문의 CTE 에서 SQL Server
Code language: SQL (Structured Query Language) (sql)
이 구문에서:
- 첫 번째를 지정하는 표현 이름(
expression_name
)에 나중에 참조할 수 있는에서 쿼리를 수행합니다. - 다음으로 expression_name 뒤에 쉼표로 구분 된 열 목록을 지정하십시오. 열 수는
CTE_definition
에 정의된 열 수와 같아야 합니다. - 그런 다음 열 목록이 지정된 경우 표현식 이름 또는 열 목록 뒤에 AS 키워드를 사용하십시오.,
- 후에 결과 집합이 공통 테이블 식을 채우는
SELECT
문을 정의하십시오. - 마지막으로,참조에게 일반적인 표현을 쿼리에(
SQL_statement
)같은SELECT
,INSERT
,UPDATE
,DELETE
또는MERGE
.
우리가 사용하는 것을 선호하는 일반 테이블을 표현하기보다는 하위 사용하기 때문에 일반적인 표 식 더 읽을 수 있습니다., 우리는 또한 사용 CTE 에서 쿼리를 포함하는 분석 기능(또는 창수)
SQL Server CTE 예
자의 몇 가지 예를 사용하여 일반적인 표 식입니다.
A)간단한 SQL Server CTE 예
이는 쿼리를 사용 CTE 돌아 판매량 판매에 의해 직원에 2018:
다음과 같은 그림을 보여주는 결과를 설정:
이 예에서는 다음과 같습니다.
- 첫 번째 정의
cte_sales_amounts
의 이름으로 일반적인 표현., CTE 결과를 반환하는 것으로 구성된 세 개의 열staff
,year
,andsales
에서 파생된 정의 쿼리가 있습니다. - 두 번째,우리는 건설하는 쿼리를 반환하는 총 매출액 영업 직원에 의해 올해 데이터 쿼리에서
orders
,order_items
및staffs
테이블이 있습니다. - 셋째,외부 쿼리에서 CTE 를 참조하고 연도가 2018 인 행만 선택합니다.,
주목하는 이 예제는 전적으로 데모 목적으로 도움 당신은 점차적으로 이해하는 방법 일반적인 표 식 작동합니다. CTE 를 사용하지 않고 결과를 얻을 수있는보다 최적의 방법이 있습니다.
B)사용하여 일반적인 표현을 만들 보고서 평균에 따라 계산
이 예제에 사용 CTE 를 반환한 평균 판매 주문서에 2018 년에 대한 모든 판매의 직원이 있습니다.
출력은 다음과 같습니다.
Code language: SQL (Structured Query Language) (sql)
이 예에서는 다음과 같습니다.
첫째,우리가 사용하는cte_sales
의 이름으로 일반적인 표현., Cte 의 열 목록을 건너 뛰었으므로 CTE 정의 문에서 파생됩니다. 이 예에서는staff_id
및order_count
열이 포함됩니다.
둘째,다음 쿼리를 사용하여 공통 테이블 표현식cte_sales
를 채우는 결과 집합을 정의합니다. 이 쿼리는 영업 직원이 2018 년 주문 수를 반환합니다.
번째,우리가cte_sales
외부에서 문을 사용하는AVG()
기능이 평균 판매 주문에 의해 모든 직원이 있습니다.,
Code language: SQL (Structured Query Language) (sql)
C)사용하여 여러 SQL Server CTE 에서 하나의 쿼리를 들어
는 다음과 같이 두 가지 CTEcte_category_counts
및cte_category_sales
수를 반환하의 제품 판매를 위한 각 제품 카테고리입니다. 외부 쿼리는category_id
열을 사용하여 두 개의 CTEs 를 조인합니다.,
결과 집합은 다음과 같습니다:
이 튜토리얼에서,당신은 어떻게 배웠을 사용하여 일반적인 테이블에 표현이나 CTE 에서 SQL 서버를 구성하는 복잡한 쿼리에서 이해하기 쉬운 방식이다.피>