Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Topik ini menyediakan referensi cepat ke kueri Entity SQL. Kueri dalam topik ini didasarkan pada model Penjualan AdventureWorks.
Literasi
string
Ada string literal karakter Unicode dan yang non-Unicode. String Unicode didahului dengan N. Misalnya, N'hello'.
Berikut adalah contoh string literal Non-Unicode.
'hello'
--same as
"hello"
Keluaran:
| Nilai |
|---|
| halo |
Tanggal dan Waktu
Dalam literal DateTime, bagian tanggal dan waktu adalah wajib. Tidak ada nilai default.
Contoh:
DATETIME '2006-12-25 01:01:00.000'
--same as
DATETIME '2006-12-25 01:01'
Keluaran:
| Nilai |
|---|
| 25/12/2006 1:01:00 AM |
Integer
Literal bilangan bulat dapat berjenis Int32 (123), UInt32 (123U), Int64 (123L), dan UInt64 (123UL).
Contoh:
--a collection of integers
{1, 2, 3}
Keluaran:
| Nilai |
|---|
| 1 |
| 2 |
| 3 |
Lainnya
Literal lain yang didukung oleh Entity SQL adalah Guid, Binary, Float/Double, Decimal, dan null. Literal null dalam Entity SQL dianggap kompatibel dengan setiap jenis lain dalam model konseptual.
Jenis Konstruktor
BARIS
ROW membangun nilai (rekaman) anonim yang ditik secara struktural seperti dalam: ROW(1 AS myNumber, 'Name' AS myName).
Contoh:
SELECT VALUE row (product.ProductID AS ProductID, product.Name
AS ProductName) FROM AdventureWorksEntities.Product AS product
Keluaran:
| ProductID | Nama |
|---|---|
| 1 | Ras yang Dapat Disesuaikan |
| 879 | All-Purpose Penyangga Sepeda |
| 712 | Topi Logo AWC |
| ... | ... |
MULTISET
MULTISET membuat koleksi, seperti:
MULTISET(1,2,2,3)
--same as
-
{1,2,2,3}.
Contoh:
SELECT VALUE product FROM AdventureWorksEntities.Product AS product WHERE product.ListPrice IN MultiSet (125, 300)
Keluaran:
| ProductID | Nama | Nomor Produk | … |
|---|---|---|---|
| 842 | Touring-Panniers, Besar | PA-T100 | … |
Objek
Type Konstruktor Bernama membuat objek yang ditentukan pengguna (bernama), seperti person("abc", 12).
Contoh:
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
Keluaran:
| ID Detail Pesanan Penjualan | Nomor Pelacakan Pengirim | Jumlah Pesanan | ProductID | ... |
|---|---|---|---|---|
| 1 | 4911-403C-98 | 1 | 776 | ... |
| 2 | 4911-403C-98 | 3 | 777 | ... |
| ... | ... | ... | ... | ... |
Referensi
REF
REF membuat referensi ke instans jenis entitas. Misalnya, kueri berikut mengembalikan referensi ke setiap entitas Pesanan dalam kumpulan entitas Pesanan:
SELECT REF(o) AS OrderID FROM Orders AS o
Keluaran:
| Nilai |
|---|
| 1 |
| 2 |
| 3 |
| ... |
Contoh berikut menggunakan operator ekstraksi properti (.) untuk mengakses properti entitas. Ketika operator ekstraksi properti digunakan, referensi secara otomatis didereferensikan.
Contoh:
SELECT VALUE REF(p).Name FROM
AdventureWorksEntities.Product AS p
Keluaran:
| Nilai |
|---|
| Ras yang Dapat Disesuaikan |
| All-Purpose Penyangga Sepeda |
| Topi Logo AWC |
| ... |
DEREF
DEREF mendereferensikan nilai referensi dan menghasilkan hasil dereferensi tersebut. Misalnya, kueri berikut menghasilkan entitas Pesanan untuk setiap Pesanan dalam kumpulan entitas Pesanan: SELECT DEREF(o2.r) FROM (SELECT REF(o) AS r FROM LOB.Orders AS o) AS o2..
Contoh:
SELECT VALUE DEREF(REF(p)).Name FROM
AdventureWorksEntities.Product AS p
Keluaran:
| Nilai |
|---|
| Ras yang Dapat Disesuaikan |
| All-Purpose Penyangga Sepeda |
| Topi Logo AWC |
| ... |
CREATEREF DAN KUNCI
CREATEREF membuat referensi dengan menyampaikan kunci. KEY mengekstrak bagian kunci ekspresi dengan referensi jenis.
Contoh:
SELECT VALUE Key(CreateRef(AdventureWorksEntities.Product, row(p.ProductID)))
FROM AdventureWorksEntities.Product AS p
Keluaran:
| ProductID |
|---|
| 980 |
| 365 |
| 771 |
| ... |
Fungsi
Canonical
Namespace untuk fungsi kanonis adalah Edm, seperti dalam Edm.Length("string"). Anda tidak perlu menentukan namespace kecuali namespace lain diimpor yang berisi fungsi dengan nama yang sama dengan fungsi kanonis. Jika dua namespace memiliki fungsi yang sama, pengguna harus menentukan nama lengkap.
Contoh:
SELECT Length(c. FirstName) AS NameLen FROM
AdventureWorksEntities.Contact AS c
WHERE c.ContactID BETWEEN 10 AND 12
Keluaran:
| NameLen |
|---|
| 6 |
| 6 |
| 5 |
Microsoft Provider-Specific
Fungsi khusus penyedia Microsoft ada dalam SqlServer namespace.
Contoh:
SELECT SqlServer.LEN(c.EmailAddress) AS EmailLen FROM
AdventureWorksEntities.Contact AS c WHERE
c.ContactID BETWEEN 10 AND 12
Keluaran:
| EmailLen |
|---|
| 27 |
| 27 |
| 26 |
Namespace
USING menentukan namespace yang digunakan dalam ekspresi kueri.
Contoh:
using SqlServer; LOWER('AA');
Keluaran:
| Nilai |
|---|
| Aa |
Pemanggilan
Pengaturan halaman (Paging) dapat dinyatakan dengan mendeklarasikan sub-klausa SKIP dan LIMIT dalam klausa ORDER BY.
Contoh:
SELECT c.ContactID as ID, c.LastName AS Name FROM
AdventureWorks.Contact AS c ORDER BY c.ContactID SKIP 9 LIMIT 3;
Keluaran:
| Nomor Identitas | Nama |
|---|---|
| 10 | Adina |
| 11 | Agcaoili |
| 12 | Aguilar |
Pengelompokan
PENGELOMPOKAN MENURUT menentukan grup tempat objek yang dikembalikan oleh ekspresi kueri (SELECT) akan ditempatkan.
Contoh:
SELECT VALUE name FROM AdventureWorksEntities.Product AS P
GROUP BY P.Name HAVING MAX(P.ListPrice) > 5
Keluaran:
| Nama |
|---|
| Rakitan Kursi Gunung LL |
| Rangka Kursi ML Mountain |
| Rakitan Kursi Gunung HL |
| ... |
Navigasi
Operator navigasi hubungan memungkinkan Anda menavigasi hubungan dari satu entitas (ujung awal) ke entitas lainnya (ujung akhir). NAVIGATE mengambil tipe hubungan yang ditetapkan sebagai <namespace>.<tipe hubungan>. Navigasi mengembalikan Ref<T> jika kardinalitas hingga akhir adalah 1. Jika kardinalitas dari ujung adalah n, maka Collection<Ref<T>> akan dikembalikan.
Contoh:
SELECT a.AddressID, (SELECT VALUE DEREF(v) FROM
NAVIGATE(a, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) AS v)
FROM AdventureWorksEntities.Address AS a
Keluaran:
| AddressID |
|---|
| 1 |
| 2 |
| 3 |
| ... |
PILIH NILAI DAN PILIH
PILIH NILAI
Entity SQL menyediakan klausul SELECT VALUE untuk melewati konstruksi baris implisit. Hanya satu item yang dapat ditentukan dalam klausa SELECT VALUE. Ketika klausa seperti itu digunakan, tidak ada pembungkus baris yang dibangun di sekitar item dalam klausa SELECT, dan koleksi bentuk yang diinginkan dapat diproduksi, misalnya: SELECT VALUE a.
Contoh:
SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p
Keluaran:
| Nama |
|---|
| Ras yang Dapat Disesuaikan |
| All-Purpose Penyangga Sepeda |
| Topi Logo AWC |
| ... |
PILIH
Entity SQL juga menyediakan konstruktor baris untuk membangun baris arbitrer. SELECT mengambil satu atau beberapa elemen dalam proyeksi dan menghasilkan rekaman data dengan bidang, misalnya: SELECT a, b, c.
Contoh:
PILIH p.Nama, p.ProdukID DARI AdventureWorksEntities.Product sebagai p Hasil:
| Nama | ProductID |
|---|---|
| Ras yang Dapat Disesuaikan | 1 |
| All-Purpose Penyangga Sepeda | 879 |
| Topi Logo AWC | 712 |
| ... | ... |
EKSPRESI KASUS
Ekspresi kasus mengevaluasi sekumpulan ekspresi Boolean untuk menentukan hasilnya.
Contoh:
CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END
Keluaran:
| Nilai |
|---|
| BENAR |