次の方法で共有


Entity SQL 「クイックリファレンス」

このトピックでは、Entity SQL クエリのクイック リファレンスを提供します。 このトピックのクエリは、AdventureWorks Sales モデルに基づいています。

リテラル

Unicode および Unicode 以外の文字列リテラルがあります。 Unicode 文字列の先頭に N が付加されます。たとえば、 N'hello'

Unicode 以外の文字列リテラルの例を次に示します。

'hello'
--same as
"hello"

アウトプット:

価値
こんにちは

日付と時間

DateTime リテラルでは、日付と時刻の両方の部分が必須です。 既定値はありません。

例:

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

アウトプット:

価値
2006 年 12 月 25 日午前 1:01:00

整数

整数リテラルには、Int32 (123)、UInt32 (123U)、Int64 (123L)、UInt64 (123UL) の型を指定できます。

例:

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

アウトプット:

価値
1
2
3

その他

Entity SQL でサポートされるその他のリテラルは、Guid、Binary、Float/Double、Decimal、および null です。 Entity SQL の Null リテラルは、概念モデルの他のすべての型と互換性があるとみなされます。

型コンストラクター

漕ぐ

ROW は、次のように、構造的に型指定された匿名 (レコード) 値を構築します。 ROW(1 AS myNumber, 'Name' AS myName).

例:

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

アウトプット:

ProductID 名前
1 アジャスタブルレース
879 All-Purpose バイクスタンド
712 AWC ロゴ キャップ
... ...

MULTISET

MULTISET は、次のようなコレクションを構築します。

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

例:

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

アウトプット:

ProductID 名前 製品番号
8:42 ツーリング パニエ、大 PA-T100

オブジェクト

名前付き型コンストラクターは、(名前付きの)ユーザー定義オブジェクトを構築します。(person("abc", 12)など)。

例:

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

アウトプット:

SalesOrderDetailID 運送業者の追跡番号 注文数量 ProductID ...
1 4911-403C-98 1 776 ...
2 4911-403C-98 3 777 ...
... ... ... ... ...

リファレンス

REF

REF は、エンティティ型インスタンスへの参照を作成します。 たとえば、次のクエリは、Orders エンティティ セット内の各 Order エンティティへの参照を返します。

SELECT REF(o) AS OrderID FROM Orders AS o

アウトプット:

価値
1
2
3
...

次の例では、プロパティ抽出演算子 (.) を使用してエンティティのプロパティにアクセスします。 プロパティ抽出演算子を使用すると、参照が自動的に逆参照されます。

例:

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

アウトプット:

価値
アジャスタブルレース
All-Purpose バイクスタンド
AWC ロゴ キャップ
...

DEREF

DEREF は 参照値を逆参照し、その逆参照の結果を生成します。 たとえば、次のクエリでは、Orders エンティティ セット内の各 Order の Order エンティティが生成されます: SELECT DEREF(o2.r) FROM (SELECT REF(o) AS r FROM LOB.Orders AS o) AS o2..

例:

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

アウトプット:

価値
アジャスタブルレース
All-Purpose バイクスタンド
AWC ロゴ キャップ
...

CREATEREF と KEY

CREATEREF は 、キーを渡す参照を作成します。 KEY は、型参照を使用して式のキー部分を抽出します。

例:

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

アウトプット:

ProductID
980
365
771
...

機能

正規

正規関数の名前空間は、Edm.Length("string")のように Edm です。 正規関数と同じ名前の関数を含む別の名前空間をインポートしない限り、名前空間を指定する必要はありません。 2 つの名前空間に同じ関数がある場合、ユーザーは完全な名前を指定する必要があります。

例:

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

アウトプット:

NameLen
6
6
5

Microsoft プロバイダー固有

Microsoft プロバイダー固有の関数 は、 SqlServer 名前空間にあります。

例:

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

アウトプット:

EmailLen
二十七
二十七
26

名前空間

USING は、クエリ式で使用される名前空間を指定します。

例:

using SqlServer; LOWER('AA');

アウトプット:

価値
aa

ページング

ページングは、SKIP サブクローズと LIMIT サブクローズを ORDER BY 句に宣言することで表現できます。

例:

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

アウトプット:

身分証明書 名前
10 アディーナ
11 Agcaoili
12 アギュラー

グルーピング

GROUPING BY は、クエリ (SELECT) 式によって返されるオブジェクトを配置するグループを指定します。

例:

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

アウトプット:

名前
LL マウンテン シート アセンブリ
ML Mountain Seat Assembly
HL Mountain Seat Assembly
...

リレーションシップ ナビゲーション演算子を使用すると、あるエンティティ(始点)から別のエンティティ(終点)へ関係を移動できます。 NAVIGATE は、 <namespace>.< として修飾されたリレーションシップの種類を受け取ります。リレーションシップの種類名>。 Navigate は、末尾のカーディナリティが 1 の場合は ref<T> を返します。 to end のカーディナリティが n の場合、Collection<Ref<T>> が返されます。

例:

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

アウトプット:

AddressID
1
2
3
...

値を選択して選択する

値を選択

Entity SQL には、暗黙的な行の構築をスキップする SELECT VALUE 句が用意されています。 SELECT VALUE 句で指定できる項目は 1 つだけです。 このような句を使用する場合、SELECT 句内の項目を囲む行ラッパーは作成されません。目的の図形のコレクション (例: SELECT VALUE a) を生成できます。

例:

SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p

アウトプット:

名前
アジャスタブルレース
All-Purpose バイクスタンド
AWC ロゴ キャップ
...

選択する

Entity SQL には、任意の行を構築するための行コンストラクターも用意されています。 SELECT はプロジェクション内の 1 つ以上の要素を受け取り、フィールドを含むデータ レコードになります (例: SELECT a, b, c)。

例:

SELECT p.Name、p.ProductID FROM AdventureWorksEntities.Product as p Output:

名前 ProductID
アジャスタブルレース 1
All-Purpose バイクスタンド 879
AWC ロゴ キャップ 712
... ...

CASE 式

case 式は、一連のブール式を評価して結果を決定します。

例:

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

アウトプット:

価値
真実

こちらも参照ください