Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konu, Varlık SQL sorguları için hızlı bir başvuru sağlar. Bu konudaki sorgular AdventureWorks Satış modelini temel alır.
Literal İfadeler
Dize
Unicode ve Unicode olmayan karakter dizisi sabitleri vardır. Unicode dizelerinin başına N eklenir. Örneğin, N'hello'.
Aşağıda Unicode olmayan bir dize sabiti örneği verilmiştir.
'hello'
--same as
"hello"
Çıktı:
| Değer |
|---|
| merhaba |
Tarih ve Saat
DateTime değişmez değerlerinde hem tarih hem de saat bölümleri zorunlu olur. Varsayılan değer yoktur.
Örnek:
DATETIME '2006-12-25 01:01:00.000'
--same as
DATETIME '2006-12-25 01:01'
Çıktı:
| Değer |
|---|
| 25.12.2006 01:01:00 |
Tam sayı
Tamsayı değişmez değerleri Int32 (123), UInt32 (123U), Int64 (123L) ve UInt64 (123UL) türünde olabilir.
Örnek:
--a collection of integers
{1, 2, 3}
Çıktı:
| Değer |
|---|
| 1 |
| 2 |
| 3 |
Diğer
Entity SQL tarafından desteklenen diğer değişmez değerler Guid, İkili, Kayan/Çift, Ondalık ve null'dir. Entity SQL'deki null değişmez değerlerin kavramsal modeldeki diğer tüm türlerle uyumlu olduğu kabul edilir.
Tür Oluşturucuları
Sıra
ROW , şu şekilde yapısal olarak türlenmiş anonim bir (kayıt) değer oluşturur: ROW(1 AS myNumber, 'Name' AS myName).
Örnek:
SELECT VALUE row (product.ProductID AS ProductID, product.Name
AS ProductName) FROM AdventureWorksEntities.Product AS product
Çıktı:
| Productıd | İsim |
|---|---|
| 1 | Ayarlanabilir Yarış |
| 879 | All-Purpose Bisiklet Standı |
| 712 | AWC Logolu Şapka |
| ... | ... |
Çoklu Küme
MULTISET koleksiyonlar oluşturur, örneğin:
MULTISET(1,2,2,3)
--same as
-
{1,2,2,3}.
Örnek:
SELECT VALUE product FROM AdventureWorksEntities.Product AS product WHERE product.ListPrice IN MultiSet (125, 300)
Çıktı:
| Productıd | İsim | Ürün Numarası | … |
|---|---|---|---|
| 842 | Turistik Sırt / Yan Çantalar, Büyük | PA-T100 | … |
Nesne
Adlandırılmış Tür Oluşturucu, person("abc", 12) gibi adlandırılmış kullanıcı tanımlı nesneler oluşturur.
Örnek:
SELECT VALUE AdventureWorksModel.SalesOrderDetail (o.SalesOrderDetailID, o.CarrierTrackingNumber, o.OrderQty,
o.ProductID, o.SpecialOfferID, o.UnitPrice, o.UnitPriceDiscount,
o.rowguid, o.ModifiedDate) FROM AdventureWorksEntities.SalesOrderDetail
AS o
Çıktı:
| SatışSiparişDetayID | Taşıyıcı Takip Numarası | Sipariş Miktarı | Productıd | ... |
|---|---|---|---|---|
| 1 | 4911-403C-98 | 1 | 776 | ... |
| 2 | 4911-403C-98 | 3 | 777 | ... |
| ... | ... | ... | ... | ... |
Kaynaklar
REF
REF , bir varlık türü örneğine başvuru oluşturur. Örneğin, aşağıdaki sorgu Siparişler varlık kümesindeki her Sipariş varlığına başvurular döndürür:
SELECT REF(o) AS OrderID FROM Orders AS o
Çıktı:
| Değer |
|---|
| 1 |
| 2 |
| 3 |
| ... |
Aşağıdaki örnek, bir varlığın özelliğine erişmek için özellik ayıklama işlecini (.) kullanır. Özellik ayıklama işleci kullanıldığında, bağlantı otomatik olarak çözülür.
Örnek:
SELECT VALUE REF(p).Name FROM
AdventureWorksEntities.Product AS p
Çıktı:
| Değer |
|---|
| Ayarlanabilir Yarış |
| All-Purpose Bisiklet Standı |
| AWC Logolu Şapka |
| ... |
DEREF
DEREF, bir başvuru değerinin referansını kaldırır ve bu işlemin sonucunu üretir. Örneğin, aşağıdaki sorgu Siparişler varlık kümesindeki her Sipariş için Sipariş varlıklarını oluşturur: SELECT DEREF(o2.r) FROM (SELECT REF(o) AS r FROM LOB.Orders AS o) AS o2..
Örnek:
SELECT VALUE DEREF(REF(p)).Name FROM
AdventureWorksEntities.Product AS p
Çıktı:
| Değer |
|---|
| Ayarlanabilir Yarış |
| All-Purpose Bisiklet Standı |
| AWC Logolu Şapka |
| ... |
CREATEREF VE KEY
CREATEREF bir anahtar geçirilerek bir başvuru oluşturur. KEY , bir ifadenin anahtar bölümünü tür başvurusuyla ayıklar.
Örnek:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Product, row(p.ProductID)))
FROM AdventureWorksEntities.Product AS p
Çıktı:
| Productıd |
|---|
| 980 |
| 365 |
| 771 |
| ... |
İşlevler
Kurallı
Kurallı işlevlerin ad alanı, içinde olduğu gibi Edm'dirEdm.Length("string"). Kurallı işlevle aynı ada sahip bir işlev içeren başka bir ad alanı içeri aktarılmadığı sürece ad alanını belirtmeniz gerekmez. İki ad alanı aynı işleve sahipse, kullanıcı tam adı belirtmelidir.
Örnek:
SELECT Length(c. FirstName) AS NameLen FROM
AdventureWorksEntities.Contact AS c
WHERE c.ContactID BETWEEN 10 AND 12
Çıktı:
| NameLen |
|---|
| 6 |
| 6 |
| 5 |
Microsoft Provider-Specific
Microsoft'a özgü sağlayıcı işlevleriSqlServer ad alanındadır.
Örnek:
SELECT SqlServer.LEN(c.EmailAddress) AS EmailLen FROM
AdventureWorksEntities.Contact AS c WHERE
c.ContactID BETWEEN 10 AND 12
Çıktı:
| E-postaLen |
|---|
| 27 |
| 27 |
| 26 |
Namespace'ler
USING , sorgu ifadesinde kullanılan ad alanlarını belirtir.
Örnek:
using SqlServer; LOWER('AA');
Çıktı:
| Değer |
|---|
| Acar |
Sayfalama
Sayfalama, ORDER BY yan tümcesine SKIP ve LIMIT alt ifadeleri bildirilerek ifade edilebilir.
Örnek:
SELECT c.ContactID as ID, c.LastName AS Name FROM
AdventureWorks.Contact AS c ORDER BY c.ContactID SKIP 9 LIMIT 3;
Çıktı:
| Kimlik | İsim |
|---|---|
| 10 | Adina |
| 11 | Agcaoili dili |
| 12 | Aguilar |
Gruplama
GRUPLANDıRMA ÖLÇÜTÜ , sorgu (SELECT) ifadesi tarafından döndürülen nesnelerin yerleştirileceği grupları belirtir.
Örnek:
SELECT VALUE name FROM AdventureWorksEntities.Product AS P
GROUP BY P.Name HAVING MAX(P.ListPrice) > 5
Çıktı:
| isim |
|---|
| LL Dağ Koltuğu Montajı |
| ML Mountain Seat Montajı |
| HL Mountain Seat Montajı |
| ... |
Navigasyon
İlişki gezinti işleci, bir varlıktan (başlangıç) diğerine (bitiş) ilişkide gezinmenizi sağlar. NAVIGATE, <namespace>.<ilişki türü adı> olarak nitelendirilen ilişki türünü alır. Kardinalitesi 1 olan bitiş noktası için Navigate Ref<T> döndürür. Bitiş ucunun kardinalitesi n ise Collection<Ref<T>> geri döndürülür.
Örnek:
SELECT a.AddressID, (SELECT VALUE DEREF(v) FROM
NAVIGATE(a, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) AS v)
FROM AdventureWorksEntities.Address AS a
Çıktı:
| Adres Kimliği |
|---|
| 1 |
| 2 |
| 3 |
| ... |
DEĞERİ SEÇİN VE SEÇİN
DEĞER SEÇ
Entity SQL, örtük satır oluşturma işlemini atlamak için SELECT VALUE yan tümcesini sağlar. SELECT VALUE yan tümcesinde yalnızca bir öğe belirtilebilir. Böyle bir yan tümce kullanıldığında, SELECT yan tümcesindeki öğelerin çevresinde satır sarmalayıcı oluşturulmaz ve istenen şeklin bir koleksiyonu üretilebilir, örneğin: SELECT VALUE a.
Örnek:
SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p
Çıktı:
| İsim |
|---|
| Ayarlanabilir Yarış |
| All-Purpose Bisiklet Standı |
| AWC Logolu Şapka |
| ... |
SEÇ
Entity SQL ayrıca rastgele satırlar oluşturmak için satır oluşturucu sağlar. SELECT projeksiyondaki bir veya daha fazla öğeyi alır ve alanları olan bir veri kaydına neden olur, örneğin: SELECT a, b, c.
Örnek:
SELECT p.Name, p.ProductID FROM AdventureWorksEntities.Product as p Çıktı:
| İsim | Productıd |
|---|---|
| Ayarlanabilir Yarış | 1 |
| All-Purpose Bisiklet Standı | 879 |
| AWC Logolu Şapka | 712 |
| ... | ... |
KOŞUL İFADESİ
Case ifadesi, sonucu belirlemek için bir dizi Boole ifadesini değerlendirir.
Örnek:
CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END
Çıktı:
| Değer |
|---|
| DOĞRU |