SELECT (Entity SQL)

Sorgu tarafından döndürülen öğeleri belirtir.

Söz dizimi

SELECT [ ALL | DISTINCT ] [ topSubclause ] aliasedExpr
      [{ , aliasedExpr }] FROM fromClause [ WHERE whereClause ] [ GROUP BY groupByClause [ HAVING havingClause ] ] [ ORDER BY orderByClause ]
-- or
SELECT VALUE [ ALL | DISTINCT ] [ topSubclause ] expr FROM fromClause [ WHERE whereClause ] [ GROUP BY groupByClause [ HAVING havingClause ] ] [ ORDER BY orderByClause

Bağımsız değişkenler

ALL Sonuç kümesinde yinelenenlerin görünebileceğini belirtir. TÜMÜ varsayılan değerdir.

DISTINCT Sonuç kümesinde yalnızca benzersiz sonuçların görünebileceğini belirtir.

DEĞER Yalnızca bir öğenin belirtilmesine izin verir ve satır sarmalayıcıya eklenmez.

topSubclause biçimindeki top(expr)sorgudan döndürülecek ilk sonuçların sayısını gösteren geçerli ifadeler.

ORDER BY işlecinin LIMIT parametresi, sonuç kümesindeki ilk n öğeyi seçmenize de olanak tanır.

aliasedExpr Formun ifadesi:

expr Olarak identifier | expr

expr Değişmez değer veya ifade.

Açıklamalar

SELECT yan tümcesi FROM, GROUP BY ve HAVING yan tümceleri değerlendirildikten sonra değerlendirilir. SELECT yan tümcesi yalnızca şu anda kapsam içinde olan öğelere başvurabilir (FROM yan tümcesinden veya dış kapsamlardan). GROUP BY yan tümcesi belirtilmişse, SELECT yan tümcesinin yalnızca GROUP BY anahtarları için diğer adlara başvurmasına izin verilir. FROM yan tümcesi öğelerine yalnızca toplama işlevlerinde izin verilir.

SELECT anahtar sözcüğünü izleyen bir veya daha fazla sorgu ifadesinin listesi, seçme listesi veya daha resmi olarak projeksiyon olarak bilinir. Projeksiyonun en genel biçimi tek bir sorgu ifadesidir. Bir koleksiyondan collection1bir üye member1 seçerseniz, aşağıdaki örnekte gösterildiği gibi içindeki collection1her nesne için tüm member1 değerleri içeren yeni bir koleksiyon oluşturursunuz.

SELECT collection1.member1 FROM collection1

Örneğin, türünde Customer bir özelliği stringName olan bir tür koleksiyonu isecustomers, aşağıdaki örnekte gösterildiği gibi öğesinin customers seçilmesi Name bir dize koleksiyonu oluşturur.

SELECT customers.Name FROM customers AS c

JOIN söz dizimlerini (TAM, İÇ, SOL, DıŞ, AÇKI ve SAĞ) kullanmak da mümkündür. ON iç birleşimler için gereklidir ve çapraz birleşimler için nto'ya izin verilir.

Satır ve Değer Seçme Yan Tümceleri

Entity SQL, SELECT yan tümcesinin iki değişkenini destekler. İlk değişken olan satır seçimi, SELECT anahtar sözcüğüyle tanımlanır ve yansıtılması gereken bir veya daha fazla değeri belirtmek için kullanılabilir. Döndürülen değerlerin etrafına örtük olarak bir satır sarmalayıcı eklendiğinden, sorgu ifadesinin sonucu her zaman çok satırlı bir sonuçtur.

Bir satırdaki her sorgu ifadesinin bir diğer ad belirtmesi gerekir. Diğer ad belirtilmezse, Entity SQL diğer ad oluşturma kurallarını kullanarak bir diğer ad oluşturmayı dener.

SELECT yan tümcesinin diğer değişkeni olan value select, SELECT VALUE anahtar sözcüğüyle tanımlanır. Yalnızca bir değerin belirtilmesine izin verir ve satır sarmalayıcı eklemez.

Aşağıdaki örnekte gösterildiği gibi, satır seçimi her zaman DEĞER SEÇİSİ açısından ifade edilebilir.

SELECT 1 AS a, "abc" AS b FROM C
SELECT VALUE ROW(1 AS a, "abc" AS b) FROM C

Tümü ve Ayrı Değiştiriciler

Entity SQL'de SELECT'in her iki değişkeni de ALL veya DISTINCT değiştiricisinin belirtimini sağlar. DISTINCT değiştiricisi belirtilirse, yinelemeler sorgu ifadesi tarafından üretilen koleksiyondan (SELECT yan tümcesine kadar ve dahil) ortadan kalkar. ALL değiştiricisi belirtilirse, yinelenen eleme yapılmaz; TÜMÜ varsayılan değerdir.

Transact-SQL'den farklar

Transact-SQL'in aksine, Entity SQL SELECT yan tümcesinde * bağımsız değişkeninin kullanımını desteklemez. Bunun yerine, Entity SQL sorguların aşağıdaki örnekte gösterildiği gibi FROM yan tümcesindeki koleksiyon diğer adlarına başvurarak kayıtların tamamını yansıtmasına olanak tanır.

SELECT * FROM T1, T2

Önceki Transact-SQL sorgu ifadesi Entity SQL'de aşağıdaki şekilde ifade edilir.

SELECT a1, a2 FROM T1 AS a1, T2 AS a2

Örnek

Aşağıdaki Entity SQL sorgusu, bir sorgu tarafından döndürülecek öğeleri belirtmek için SELECT işlecini kullanır. Sorgu AdventureWorks Satış Modeli'ni temel alır. Bu sorguyu derlemek ve çalıştırmak için şu adımları izleyin:

  1. Nasıl yapılır: StructuralType Sonuçları Döndüren Bir Sorgu Yürütme bölümündeki yordamı izleyin.

  2. Aşağıdaki sorguyu yöntemine ExecuteStructuralTypeQuery bağımsız değişken olarak geçirin:

SELECT VALUE product FROM AdventureWorksEntities.Products 
    AS product WHERE product.ListPrice < @price

Ayrıca bkz.