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 collection1
bir üye member1
seçerseniz, aşağıdaki örnekte gösterildiği gibi içindeki collection1
her 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 string
Name
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:
Nasıl yapılır: StructuralType Sonuçları Döndüren Bir Sorgu Yürütme bölümündeki yordamı izleyin.
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