1. ホーム
  2. sql

[解決済み】Common Table Expression(CTE)を使用するタイミングについて)

2022-04-01 07:43:41

質問

について読み始めています。 共通テーブル式 を使用する必要があるユースケースが思いつきません。派生テーブルでも同じことができるので、冗長になっているような気がします。何か見落としていることや、よく理解していないことがあるのでしょうか?CTEを使用するケースを説明するために、通常のselect、派生テーブル、またはtempテーブル・クエリによる制限の簡単な例をどなたか教えていただけませんか?簡単な例があれば、非常にありがたいです。

どのように解決するのですか?

一例を挙げると、同じデータセットを複数回参照/結合する必要がある場合、CTEを定義することで実現できます。したがって、これはコードの再利用の一形態となり得ます。

自己参照の例として、再帰がある。 CTEを用いた再帰的クエリ

Microsoftのエキサイティングな定義について ブックスオンラインから引用しています。

CTEは、次のように使用できます。

  • 再帰的なクエリを作成する。詳しくは 一般的なテーブル式を使用した再帰的なクエリ。

  • ビューの一般的な使用が必要ない場合、つまり、メタデータに定義を保存する必要がない場合に、ビューの代用として使用します。

  • スカラーサブセレクトから派生したカラム、または決定論的でない、または外部アクセスを持つ関数によるグループ化を可能にする。

  • 同じ文の中で結果のテーブルを複数回参照する。