Bagikan melalui


Referensi Cepat Entitas SQL

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

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

Lihat juga