本部分包含实体 SQL 参考文章。 本文总结并按类别对实体 SQL 运算符进行分组。
算术运算符
算术运算符对一个或多个数值数据类型的两个表达式执行数学运算。 下表列出了 Entity SQL 算术运算符:
操作员 | 使用 |
---|---|
+(加) | 加法。 |
/(除) | 划分。 |
%(取模) | 返回除法运算的余数。 |
*(乘) | 乘法。 |
- (负) | 否定。 |
-(减) | 减法。 |
规范函数
规范函数由所有数据提供程序支持,并且可供所有查询技术使用。 下表列出了规范函数:
功能 | 类型 |
---|---|
聚合实体 SQL 规范函数 | 讨论聚合实体 SQL 规范函数。 |
数学规范函数 | 讨论数学实体 SQL 规范函数。 |
字符串规范函数 | 讨论字符串实体 SQL 规范函数。 |
日期和时间规范函数 | 讨论日期和时间实体 SQL 标准函数。 |
按位规范函数 | 讨论按位实体 SQL 规范函数。 |
其他规范函数 | 讨论未分类为按位、日期/时间、字符串、数学或聚合的函数。 |
比较运算符
比较运算符是为以下类型定义的:Byte
、Int16
、Int32
、Int64
、Double
、Single
、Decimal
、String
、DateTime
、Date
、Time
、DateTimeOffset
。 应用比较运算符之前将对操作数进行隐性类型升级。 比较运算符始终生成布尔值。 当至少一个作数为 null
时,结果是 null
。
为具有标识的任何对象类型(如 Boolean
类型)定义相等和不相等。 如果具有标识的非基元对象共享相同的标识,则被视为相等。 下表列出了实体 SQL 比较运算符:
操作员 | DESCRIPTION |
---|---|
= (等于) | 比较两个表达式的相等性。 |
>(大于) | 比较两个表达式,以确定左侧表达式的值是否大于右侧表达式。 |
>= (大于或等于) | 比较两个表达式,以确定左侧表达式的值是否大于或等于右侧表达式。 |
IS [NOT] NULL | 确定查询表达式是否为 null。 |
< (小于) | 比较两个表达式,以确定左侧表达式的值是否小于右侧表达式。 |
<= (小于或等于) | 比较两个表达式,以确定左侧表达式的值是否小于或等于右侧表达式。 |
[NOT]之间 | 确定表达式是否生成指定范围内的值。 |
!= (不等于) | 比较两个表达式以确定左侧表达式是否不等于右侧表达式。 |
[NOT]喜欢 | 确定特定字符串是否与指定模式相匹配。 |
逻辑表达式和事例表达式运算符
逻辑运算符测试条件的真相。 CASE 表达式计算一组布尔表达式以确定结果。 下表列出了逻辑运算符和 CASE 表达式运算符:
操作员 | DESCRIPTION |
---|---|
&& (逻辑 AND) | 逻辑 AND。 |
! (逻辑非) | 逻辑非。 |
|| (逻辑 OR) | 逻辑 OR。 |
案例 | 计算一组布尔表达式以确定结果。 |
然后 | 当 WHEN 子句取值为 true 时的结果。 |
查询运算符
查询运算符用于定义返回实体数据的查询表达式。 下表列出了查询运算符:
操作员 | 使用 |
---|---|
从 | 指定 SELECT 语句中使用的集合。 |
GROUP BY | 指定要放置查询 (SELECT) 表达式返回的对象的组。 |
GroupPartition | 返回从聚合与之相关的组分区提取的参数值集合。 |
HAVING | 指定组或聚合的搜索条件。 |
限制 | 与 ORDER BY 子句一起使用,以执行物理分页。 |
按排序 | 指定在 SELECT 语句中返回的对象上使用的排序顺序。 |
选择 | 指定查询返回的投影中的元素。 |
跳过 | 与 ORDER BY 子句一起使用,以执行物理分页。 |
返回页首 | 指定仅从查询结果返回第一组行。 |
哪里 | 有条件地筛选查询返回的数据。 |
引用运算符
引用是指向特定实体集中的特定实体的逻辑指针(外键)。 实体 SQL 支持以下运算符来构造、析构和浏览引用:
操作员 | 使用 |
---|---|
CREATEREF | 创建对实体集中的实体的引用。 |
DEREF | 取消引用一个引用值,并生成该取消引用的结果。 |
钥匙 | 提取引用或实体表达式的键。 |
导航 | 使您可以从一个实体类型到另一个实体类型对关系进行导航 |
裁判 | 返回对实体实例的引用。 |
Set 运算符
Entity SQL 提供各种功能强大的集合运算。 这包括与 Transact-SQL 运算符类似的集运算符,例如 UNION、INTERSECT、EXCEPT 和 EXISTS。 实体 SQL 还支持重复消除(SET)、成员身份测试(IN)和联接(JOIN)的运算符。 下表列出了实体 SQL 集运算符:
操作员 | 使用 |
---|---|
ANYELEMENT | 从多值集合中提取元素。 |
除 外, |
返回由 EXCEPT 操作数左侧的查询表达式返回而不由 EXCEPT 操作数右侧的查询表达式返回的任何非重复值的集合。 |
[NOT]存在 | 确定集合是否为空。 |
扁平 化 | 将一个由多个集合组成的集合转换为一个平展集合。 |
[NOT]在 | 确定值是否与集合中的任何值匹配。 |
相交 | 返回 INTERSECT 操作数左右两边的两个查询表达式均返回的所有非重复值的集合。 |
重叠 | 确定两个集合是否具有通用元素。 |
设置 | 用于通过生成一个新集合(其中移除了所有重复元素)将对象集合转换为一个集。 |
联盟 | 将两个或多个查询的结果合并到单个集合中。 |
类型运算符
实体 SQL 提供了操作,可以对表达式(值)的类型进行构造、查询和操作。 下表列出了用于处理类型的运算符:
操作员 | 使用 |
---|---|
演员阵容 | 将一种数据类型的表达式转换为另一种。 |
收集 | 在 FUNCTION 作中用于声明实体类型或复杂类型的集合。 |
IS [NOT] OF | 确定表达式的类型是指定类型还是其子类型之一。 |
OFTYPE | 从具有特定类型的查询表达式中返回对象的集合。 |
命名类型构造函数 | 用于创建实体类型或复杂类型的实例。 |
MULTISET | 根据值列表创建多集的实例。 |
排 | 从一个或多个值构造匿名、结构化类型的记录。 |
治疗 | 将特定基类型的对象视为指定派生类型的对象。 |
其他运算符
下表列出了其他实体 SQL 运算符:
操作员 | 使用 |
---|---|
+ (字符串串联) | 用于连接实体 SQL 中的字符串。 |
. (成员访问) | 用于访问结构概念模型类型的实例的属性或字段的值。 |
-- (注释) | 包括实体 SQL 注释。 |
功能 | 定义可在实体 SQL 查询中执行的内联函数。 |