本部分包含实体 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 查询中执行的内联函数。 |