Aracılığıyla paylaş


Ortak bir tablo ifadeleri kullanma

Ortak bir tablo ifade (CTE), geçici bir sonucu olarak düşünülebilir küme, tek bir SELECT, INSERT, UPDATE, DELETE veya CREATE VIEW ifade yürütme kapsamý içinde tanımlanır.Bir CTE türetilmiş bir benzer tablo, nesne ve yalnızca sorgu süresince kullanılacağını depolanmaz.Türetilmiş bir tablo, farklı bir CTE self-referencing olabilir ve aynı sorguda birden çok kez başvuruyor.

Bir CTE için kullanılabilir:

  • Özyinelenen bir sorgu oluşturun.Daha fazla bilgi için bkz:Kullanarak ortak tablo deyimleri özyinelemeli sorgular.

  • Genel bir görünümünü kullandığınızda, bir görünüm yerine bu gerekli değildir; diğer bir deyişle, meta veriler tanım depolamak gerekmez.

  • Enable gruplandırma skaler bir subselect veya bir işlev değil türetilmiş bir sütuna göre deterministic veya dış erişebilir.

  • Sonuç başvuru tablo deyimde birden çok kez aynı.

Bir CTE kullanılarak geliştirilmiş okunurluk ve bakımının karmaşık sorgular içinde kolaylıkla avantajları sunar.Sorguyu farklı, basit ve mantıksal yapı taşları bölünebilir.Bu basit blok sonra sonuç kümesi oluşturulana kadar daha karmaşık, ara CTEs oluşturmak için kullanılır.

Kullanıcı tanımlı yordamları, işlevleri, saklı yordamlar, Tetikleyiciler veya görünümler gibi CTEs tanımlanabilir.

Bir CTE yapısı

Sorguda CTE tanımlama CTE ve bir isteğe bağlı bir sütun listesi gösteren bir ifade adını BIR CTE oluşur.Bir CTE tanımlandıktan sonra bir tablo veya görünümü içinde bir SELECT, INSERT, UPDATE veya DELETE deyim gibi da başvurulabilir.CREATE VIEW deyim parçası, tanımlayan deyim içinde BIR CTE de kullanılabilir.

Bir CTE yapısını temel sözdizimi şöyledir:

WITH expression_name [ ( column_name [,...n] ) ]

AS

( CTE_query_definition )

Sütun adları listesini, yalnızca tüm sonuç sütunlar için farklı bir ad sorgu tanımında belirttiğinizde bu işlem isteğe bağlıdır.

CTE çalıştırılacak bildirimdir:

SELECT <column_list>

FROM expression_name;

Örnek

Aşağıdaki örnek, bileşenleri CTE yapısını gösterir: ifade ad, sütun listesi ve sorgu. CTE ifade Sales_CTE üç sütun () sahip.SalesPersonID, NumberOfOrders, ve MaxDate) ve toplam satış siparişleri ve satış siparişinin son tarih sayısı olarak tanımlanan SalesOrderHeader tablo her satışçı için. deyim yürütüldüğünde, the CTE iki kez başvurulmaktadır: Satışçı için seçilen sütunları geri dönün ve yeniden satışçının yöneticisini benzer ayrıntıları almak için saat. Satış Temsilcisi hem de yönetici için verileri tek bir satırda döndürülür.

Kısmi bir sonuç işte küme:

EmployeeID  NumberOfOrders MaxDate  ManagerID NumberOfOrders MaxDate
----------- -------------- ---------- --------- -------------- ----------
268         48             2004-06-01 273       NULL           NULL
275         450            2004-06-01 268       48             2004-06-01
276         418            2004-06-01 268       48             2004-06-01
277         473            2004-06-01 268       48             2004-06-01