Entity SQL 參考

本節包含 Entity SQL 參考文章。 本文按分類對 Entity SQL 運算子進行總結和分組。

算術運算子

算術運算子會針對一個或多個數值資料型別的兩個運算式執行數學運算。 下表列出 Entity SQL 算術運算子:

運算子 使用
+ (加) 加法。
/ (除) 除法。
% (模數) 傳回除法的餘數。
* (乘) 乘法。
- (負) 否定。
- (減) 減法。

標準函式

所有資料提供者都支援標準函式,標準函式可以用於所有的查詢技術。 下表列出標準函式:

函式 類型
彙總 Entity SQL 標準函式 討論彙總 Entity SQL 標準函式。
數學標準函式 討論數學 Entity SQL 標準函式。
字串標準函式 討論字串 Entity SQL 標準函式。
日期和時間標準函式 討論日期和時間 Entity SQL 標準函式。
位元標準函式 討論位元 Entity SQL 標準函式。
其他標準函式 討論未分類為位元運算、日期/時間、字串、數學或彙總的函式。

比較運算子

針對下列型別定義比較運算子:ByteInt16Int32Int64DoubleSingleDecimalStringDateTimeDateTimeDateTimeOffset。 套用比較運算子之前,系統會針對運算元進行隱含型別提升。 比較運算子一律會產生布林值。 至少其中一個運算元是 null 時,結果就是 null

針對具有識別 (Identity) 的任何物件型別 (例如 Boolean 型別) 定義了相等和不等。 如果包含識別的非基本物件共用相同的識別,它們就會被視為相等。 下表列出 Entity SQL 比較運算子:

運算子 描述
= (等於) 比較兩個運算式是否相等。
> (大於) 比較兩個運算式來判斷左運算式的值是否大於右運算式。
>= (大於或等於) 比較兩個運算式來判斷左運算式的值是否大於或等於右運算式。
IS [NOT] NULL 判斷查詢運算式是否為 null。
< (小於) 比較兩個運算式來判斷左運算式的值是否小於右運算式。
<= (小於或等於) 比較兩個運算式來判斷左運算式的值是否小於或等於右運算式。
[NOT] BETWEEN 判斷運算式是否會產生所指定範圍內的值。
!= (不等於) 比較兩個運算式來判斷左運算式是否不等於右運算式。
[NOT] LIKE 判斷特定字元字串是否符合指定的模式。

邏輯和 Case 運算式運算子

邏輯運算子會測試某個條件是否成立。 CASE 運算式會評估一組布林運算式來得出結果。 下表列出邏輯和 CASE 運算式運算子:

運算子 描述
&& (邏輯 AND) 邏輯 AND。
! (邏輯 NOT) 邏輯 NOT。
|| (邏輯 OR) 邏輯 OR。
CASE 評估一組布林運算式來得出結果。
THEN WHEN 子句的評估為 true 時,該子句的結果。

查詢運算子

查詢運算子是用來定義傳回實體資料的查詢運算式。 下表列出查詢運算子:

運算子 使用
FROM 指定 SELECT 陳述式中使用的集合。
GROUP BY 指定要放置查詢 (SELECT) 運算式所傳回物件的群組。
GroupPartition 傳回引數值的集合,該集合將群組分割投影至其相關的彙總。
HAVING 指定群組或彙總的搜尋條件。
LIMIT ORDER BY 子句搭配,在已執行的實際分頁中使用。
ORDER BY 指定 SELECT 陳述式所傳回之物件使用的排序順序。
SELECT 指定查詢傳回的投影項目。
SKIP ORDER BY 子句搭配,在已執行的實際分頁中使用。
TOP 指定只從查詢結果傳回第一組資料列。
WHERE 條件式篩選查詢傳回的資料。

參考運算子

參考是指向特定實體集中特定實體的邏輯指標 (外部索引鍵)。 Entity SQL 支援下列運算子來建構、解構及巡覽參考:

運算子 使用
CREATEREF 建立實體集中某個實體的參考。
DEREF 對參考值取值並且產生該取值的結果。
KEY 擷取參考的索引鍵,或實體運算式的索引鍵。
NAVIGATE 可讓您在關聯性上從一個實體類型巡覽到另一個實體類型
REF 傳回實體執行個體的參考。

設定運算子

Entity SQL 提供各種功能強大的集合運算。 其中包括類似 Transact-SQL 運算子的集合運算子,例如 UNION、INTERSECT、EXCEPT 和 EXISTS。 Entity SQL 也支援用於重複項目刪除 (SET)、成員資格測試 (IN) 和聯結 (JOIN) 的運算子。 下表列出 Entity SQL 集合運算子:

運算子 使用
ANYELEMENT 從多重值集合中擷取元素。
EXCEPT 從 EXCEPT 運算元左側的查詢運算式傳回任何相異值集合,這些相異值是 EXCEPT 運算元右側的查詢運算式沒有傳回的。
[NOT] EXISTS 判斷集合是否為空。
FLATTEN 將集合轉換成扁平化集合。
[NOT] IN 判斷某個值是否與集合中的任何值相符。
INTERSECT 傳回 INTERSECT 運算元左右兩側之查詢運算式都會傳回的任何相異值集合。
OVERLAPS 判斷兩個集合是否有共同項目。
SET 用來產生移除所有重複項目的新集合,利用這種方式將物件的集合 (collection) 轉換成集 (set)。
UNION 將二個或多個查詢的結果結合成單一集合。

類型運算子

Entity SQL 提供一些允許建構、查詢及操作運算式 (值) 類型的運算。 下表列出用來處理這些類型的運算子:

運算子 使用
CAST 將一種資料類型的運算式轉換成另一種。
COLLECTION 用於 FUNCTION 運算,以宣告實體類型或複雜類型的集合。
IS [NOT] OF 判斷運算式的型別是否不屬於所指定的型別或它的其中一個子型別。
OFTYPE 從屬於特定型別的查詢運算式中傳回物件的集合。
具名類型建構函式 用來建立實體類型或複雜型別的執行個體。
MULTISET 從值清單建立多重集的執行個體。
ROW 從一個或多個值建構匿名、結構式型別的記錄。
TREAT 將特定基底類型的物件視為所指定之衍生型別的物件。

其他運算子

下表列出其他 Entity SQL 運算子:

運算子 使用
+ (字串串連) 用來串連 Entity SQL 中的字串。
. (成員存取) 用來存取結構化概念模型型別之執行個體的屬性或欄位值。
-- (註解) 包含 Entity SQL 註解。
FUNCTION 定義可在 Entity SQL 查詢中執行的內嵌函式。

另請參閱