共用方式為


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 中的空值會被視為與概念模型中所有其他類型相容。

類型建構函式

ROW 會建構匿名的結構化型別 (record) 值,如下列所示: 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 名稱 產品編號
842 旅行包, 大型 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

輸出:

銷售訂單詳細ID 運輸追蹤號碼 訂單數量 ProductID ...
1 4911-403C-98 1 776 ...
2 4911-403C-98 3 777 ...
... ... ... ... ...

參考資料

裁判

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 實體: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
三百六十五
771
...

功能

典範

標準函式的命名空間是Edm,如 中所示Edm.Length("string")。 除非匯入另一個命名空間,其中包含與標準函式同名的函式,否則您不需要指定命名空間。 如果兩個命名空間具有相同的函式,用戶應該指定完整名稱。

範例:

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

輸出:

NameLen
6
6
5

Microsoft Provider-Specific

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');

輸出:

價值觀
機 管 局

尋呼

SKIPLIMIT 子句宣告為 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 Adina
11 Agcaoili
12 Aguilar

分組

GROUPING BY 會指定要放置查詢 (SELECT) 表示式所傳回物件的群組。

範例:

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

輸出:

名稱
LL 山地車座組件
ML 山地座椅組裝件
HL 山地車座組裝
...

關聯性瀏覽運算子可讓您從某個實體(從結尾)巡覽至另一個實體(到結尾) 之間的關聯性。 NAVIGATE 會採用限定為 <命名空間>的關聯性類型。<關聯性類型名稱>。 如果目標端的基數為 1,Navigate 會傳回 Ref<T> 。 如果終點的基數是 n,則會傳回集合<Ref<T>> 。

範例:

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

輸出:

地址ID
1
2
3
...

選取值並選取

選擇值

Entity SQL 提供 SELECT VALUE 子句來略過隱含數據列建構。 SELECT VALUE 子句中只能選擇一個項目。 使用這類子句時,SELECT 子句中的物件不會被資料列包覆,且可以產生所需形狀的集合,例如:SELECT VALUE a

範例:

SELECT VALUE p.Name FROM AdventureWorksEntities.Product AS p

輸出:

名稱
可調整比賽
All-Purpose 自行車站
AWC 標誌帽子
...

選擇

Entity SQL 也提供數據列建構函式來建構任意數據列。 SELECT 會採用投影中的一或多個元素,併產生具有字段的數據記錄,例如: SELECT a, b, c

範例:

選擇 p.Name; p.ProductID 從 AdventureWorksEntities.Product 作為 p 輸出:

名稱 ProductID
可調整比賽 1
All-Purpose 自行車站 879
AWC 標誌帽子 712
... ...

狀況表達式

案例表達式會評估一組布爾表達式來判斷結果。

範例:

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

輸出:

價值觀
是真的

另請參閱