Aracılığıyla paylaş


Varlık SQL Hızlı Referans Kılavuzu

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ı
...

İ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

Ayrıca bakınız