Udostępnij za pośrednictwem


Szybkie odwołanie do języka Entity SQL

Ten temat zawiera krótkie informacje na temat zapytań Entity SQL. Zapytania w tym temacie są oparte na modelu AdventureWorks Sales.

Literały

String

Istnieją literały ciągów znaków Unicode i innych niż Unicode. Ciągi Unicode są poprzedzane N. Na przykład N'hello'.

Poniżej przedstawiono przykład literału ciągu innego niż Unicode:

'hello'
--same as
"hello"

Wyjście:

Wartość
hello

DateTime

W literałach DateTime części daty i godziny są obowiązkowe. Brak wartości domyślnych.

Przykład:

DATETIME '2006-12-25 01:01:00.000'
--same as
DATETIME '2006-12-25 01:01'

Wyjście:

Wartość
12/25/2006 1:01:00

Integer

Literały całkowite mogą być typu Int32 (123), UInt32 (123U), Int64 (123L) i UInt64 (123UL).

Przykład:

--a collection of integers
{1, 2, 3}

Wyjście:

Wartość
1
2
3

Inne

Inne literały obsługiwane przez jednostkę SQL to Guid, Binary, Float/Double, Decimal i null. Literały null w jednostce SQL są uważane za zgodne z każdym innym typem w modelu koncepcyjnym.

Konstruktory typów

ROW

Wiersz tworzy anonimową, strukturalnie typizowanej wartości (rekordu) w następujący sposób: ROW(1 AS myNumber, 'Name' AS myName).

Przykład:

SELECT VALUE row (product.ProductID AS ProductID, product.Name
    AS ProductName) FROM AdventureWorksEntities.Product AS product

Wyjście:

ProductID Nazwisko
1 Regulowany wyścig
879 Stojak na rowery ogólnego przeznaczenia
712 AWC Logo Cap
... ...

MULTISET

Kolekcje konstrukcji MULTISET , takie jak:

MULTISET(1,2,2,3) --same as-{1,2,2,3}.

Przykład:

SELECT VALUE product FROM AdventureWorksEntities.Product AS product WHERE product.ListPrice IN MultiSet (125, 300)

Wyjście:

ProductID Nazwisko Numer produktu
842 Touring-Panniers, duży PA-T100

Objekt

Nazwane konstruktory typów konstruuje (nazwane) obiekty zdefiniowane przez użytkownika, takie jak person("abc", 12).

Przykład:

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

Wyjście:

SalesOrderDetailID CarrierTrackingNumber OrderQty ProductID ...
1 4911-403C-98 1 776 ...
2 4911-403C-98 3 777 ...
... ... ... ... ...

Informacje

REF

Odwołanie REF tworzy odwołanie do wystąpienia typu jednostki. Na przykład następujące zapytanie zwraca odwołania do każdej jednostki Order w zestawie jednostek Orders:

SELECT REF(o) AS OrderID FROM Orders AS o

Wyjście:

Wartość
1
2
3
...

W poniższym przykładzie użyto operatora wyodrębniania właściwości (.) w celu uzyskania dostępu do właściwości jednostki. Gdy jest używany operator wyodrębniania właściwości, odwołanie jest automatycznie wyłuszczane.

Przykład:

SELECT VALUE REF(p).Name FROM
    AdventureWorksEntities.Product AS p

Wyjście:

Wartość
Regulowany wyścig
Stojak na rowery ogólnego przeznaczenia
AWC Logo Cap
...

DEREF

DEREF wyłuszcza wartość referencyjną i generuje wynik tego wyłuszczania. Na przykład następujące zapytanie generuje jednostki Order dla każdego zamówienia w zestawie jednostek Orders: SELECT DEREF(o2.r) FROM (SELECT REF(o) AS r FROM LOB.Orders AS o) AS o2..

Przykład:

SELECT VALUE DEREF(REF(p)).Name FROM
    AdventureWorksEntities.Product AS p

Wyjście:

Wartość
Regulowany wyścig
Stojak na rowery ogólnego przeznaczenia
AWC Logo Cap
...

CREATEREF I KEY

METODA CREATEREF tworzy odwołanie przekazujące klucz. KLUCZ wyodrębnia kluczową część wyrażenia z odwołaniem do typu.

Przykład:

SELECT VALUE Key(CreateRef(AdventureWorksEntities.Product, row(p.ProductID)))
    FROM AdventureWorksEntities.Product AS p

Wyjście:

ProductID
980
365
771
...

Funkcje

Canonical

Przestrzeń nazw funkcji kanonicznych to Edm, jak w pliku Edm.Length("string"). Nie trzeba określać przestrzeni nazw, chyba że zaimportowana jest inna przestrzeń nazw zawierająca funkcję o takiej samej nazwie jak funkcja kanoniczna. Jeśli dwie przestrzenie nazw mają tę samą funkcję, użytkownik powinien określić pełną nazwę.

Przykład:

SELECT Length(c. FirstName) AS NameLen FROM
    AdventureWorksEntities.Contact AS c
    WHERE c.ContactID BETWEEN 10 AND 12

Wyjście:

NameLen
6
6
5

Specyficzne dla dostawcy firmy Microsoft

Funkcje specyficzne dla dostawcy firmy Microsoft znajdują się w SqlServer przestrzeni nazw.

Przykład:

SELECT SqlServer.LEN(c.EmailAddress) AS EmailLen FROM
    AdventureWorksEntities.Contact AS c WHERE
    c.ContactID BETWEEN 10 AND 12

Wyjście:

Adres e-mailLen
27
27
26

Przestrzenie nazw

USING określa przestrzenie nazw używane w wyrażeniu zapytania.

Przykład:

using SqlServer; LOWER('AA');

Wyjście:

Wartość
aa

Stronicowanie

Stronicowanie można wyrazić, deklarując pod klauzulę SKIP i LIMIT do klauzuli ORDER BY .

Przykład:

SELECT c.ContactID as ID, c.LastName AS Name FROM
    AdventureWorks.Contact AS c ORDER BY c.ContactID SKIP 9 LIMIT 3;

Wyjście:

IDENTYFIKATOR Nazwisko
10 Adina
11 Agcaoili
12 Aguilar

Grupowanie

GRUPOWANIE WEDŁUG określa grupy, do których mają zostać umieszczone obiekty zwracane przez wyrażenie zapytania (SELECT).

Przykład:

SELECT VALUE name FROM AdventureWorksEntities.Product AS P
    GROUP BY P.Name HAVING MAX(P.ListPrice) > 5

Wyjście:

name
Zestaw siedzeń górskich LL
Zestaw siedzeń górskich ML
Zestaw siedzeń górskich HL
...

Operator nawigacji relacji umożliwia przechodzenie przez relację z jednej jednostki (od końca) do innej (na koniec). Funkcja NAVIGATE przyjmuje typ relacji kwalifikowany jako <przestrzeń nazw>.<nazwa> typu relacji. Funkcja Navigate zwraca wartość Ref<T> , jeśli kardynalność wartości do końca wynosi 1. Jeśli kardynalność to n, zostanie zwrócony ref<T>> kolekcji<.

Przykład:

SELECT a.AddressID, (SELECT VALUE DEREF(v) FROM
    NAVIGATE(a, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) AS v)
    FROM AdventureWorksEntities.Address AS a

Wyjście:

Identyfikator_adresu
1
2
3
...

WYBIERZ WARTOŚĆ I WYBIERZ

WYBIERZ WARTOŚĆ

Jednostka SQL udostępnia klauzulę SELECT VALUE, aby pominąć niejawną konstrukcję wiersza. W klauzuli SELECT VALUE można określić tylko jeden element. W przypadku użycia takiej klauzuli nie jest tworzona żadna otoka wierszy wokół elementów w klauzuli SELECT, a kolekcja żądanego kształtu może zostać utworzona, na przykład: SELECT VALUE a.

Przykład:

SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p

Wyjście:

Nazwisko
Regulowany wyścig
Stojak na rowery ogólnego przeznaczenia
AWC Logo Cap
...

SELECT

Jednostka SQL udostępnia również konstruktor wierszy do konstruowania dowolnych wierszy. Funkcja SELECT przyjmuje co najmniej jeden element w projekcji i powoduje utworzenie rekordu danych z polami, na przykład: SELECT a, b, c.

Przykład:

WYBIERZ p.Name, p.ProductID FROM AdventureWorksEntities.Product jako dane wyjściowe p:

Nazwisko ProductID
Regulowany wyścig 1
Stojak na rowery ogólnego przeznaczenia 879
AWC Logo Cap 712
... ...

WYRAŻENIE WIELKOŚCI LITER

Wyrażenie przypadku oblicza zestaw wyrażeń logicznych w celu określenia wyniku.

Przykład:

CASE WHEN AVG({25,12,11}) < 100 THEN TRUE ELSE FALSE END

Wyjście:

Wartość
PRAWDA

Zobacz też