Welcome to Our Website

での共通テーブル式またはCTEの習得SQL Server CTE

概要:このチュートリアルでは、WITH句を使用して、SQL Serverでの共通テーブル式またはCTE

SQL ServerでのCTEの概要

CTEは共通テーブル式の略です。 CTEを使用すると、SELECTINSERTUPDATEDELETEMERGEなどのステートメントの実行スコープで一時的に使用できる一時的な名前付き結果セットを定義できます。,

SQL ServerのCTEの一般的な構文を次に示します。

Code language: SQL (Structured Query Language) (sql)

この構文では、

  • まず、式名(expression_name)を指定します。
  • 次に、expression_nameの後にカンマ区切りの列のリストを指定します。 列の数は、CTE_definitionで定義されている列の数と同じでなければなりません。
  • 次に、列リストが指定されている場合は、式名または列リストの後にASキーワードを使用します。,
  • その後、結果セットが共通テーブル式を設定するSELECTステートメントを定義します。
  • 最後に、SQL_statementSELECTINSERTUPDATEDELETE、またはMERGE

を参照してください

共通テーブル式は読みやすいため、サブクエリを使用するのではなく、共通テーブル式を使用することをお勧めします。, また、分析関数(またはウィンドウ関数)を含むクエリでCTEを使用します

SQL Server CTEの例

共通テーブル式を使用する例をいくつか見てみましょう。

A)単純なSQL Server CTEの例

このクエリでは、CTEを使用して2018年の営業スタッフの売上金額を返します。

次の図は結果セットを示しています。

この例では、

  • まず、共通テーブル式の名前としてcte_sales_amountsを定義しました。, CTEは、定義クエリから派生したstaffyear、およびsalesの三つの列で構成される結果を返します。次に、ordersorder_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_countscte_category_salesを使用して、各製品カテゴリの製品 外部クエリは、category_id列を使用して二つのCteを結合します。,

結果セットは次のとおりです。

このチュートリアルでは、sql Serverで共通テーブル式またはCTEを使用して、複雑なクエリをわかりやすく

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です