实体 SQL 引用
本节包含实体 SQL 引用文章。 本文按类别汇总和分组实体 SQL 运算符。
算数运算符
算术运算符对两个表达式执行数学运算,这两个表达式可以是一个或多个数值数据类型。 下表列出了实体 SQL 算术运算符:
运算符 | 用途 |
---|---|
+(加) | 加。 |
/(除) | 除。 |
%(取模) | 返回除法运算的余数。 |
*(乘) | 乘。 |
-(负) | 求反。 |
-(减) | 减。 |
规范函数
所有数据提供程序都支持规范函数,并且所有查询技术都可以使用规范函数。 下表列出了规范函数:
函数 | 类型 |
---|---|
聚合 Entity SQL 规范函数 | 讨论聚合实体 SQL 规范函数。 |
数学规范函数 | 讨论数学实体 SQL 规范函数。 |
字符串规范函数 | 讨论字符串实体 SQL 规范函数。 |
日期和时间规范函数 | 讨论日期和时间实体 SQL 规范函数。 |
按位规范函数 | 讨论按位实体 SQL 规范函数。 |
其他规范函数 | 讨论未分类为按位、日期/时间、字符串、数字或聚合函数的函数。 |
比较运算符
比较运算符适用于下列类型:Byte
、Int16
、Int32
、Int64
、Double
、Single
、Decimal
、String
、DateTime
、Date
、Time
、DateTimeOffset
。 应用比较运算符之前将对操作数进行隐性类型升级。 比较运算符总是生成布尔值。 如果操作数中至少有一个 null
,则结果为 null
。
相等和不相等适用于有标识的所有对象类型,如 Boolean
类型。 拥有相同标识的非基元对象被视为相等。 下表列出了实体 SQL 比较运算符:
运算符 | 说明 |
---|---|
=(等于) | 比较两个表达式是否相等。 |
>(大于) | 比较两个表达式以确定左侧表达式的值是否大于右侧表达式的值。 |
>=(大于或等于) | 比较两个表达式以确定左侧表达式的值是否大于或等于右侧表达式的值。 |
IS [NOT] NULL | 确定查询表达式是否为 null。 |
<(小于) | 比较两个表达式以确定左侧表达式的值是否小于右侧表达式的值。 |
<=(小于或等于) | 比较两个表达式以确定左侧表达式的值是否小于或等于右侧表达式的值。 |
[NOT] BETWEEN | 确定表达式的结果值是否在指定范围内。 |
!=(不等于) | 比较两个表达式以确定左侧表达式是否不等于右侧表达式。 |
[NOT] LIKE | 确定特定字符串是否与指定模式相匹配。 |
逻辑和 CASE 表达式运算符
逻辑运算符测试条件的真实性。 CASE 表达式计算一组布尔表达式的值以确定结果。 下表列出了逻辑和 CASE 表达式运算符:
运算符 | 说明 |
---|---|
&&(逻辑与) | 逻辑 AND。 |
! (逻辑非) | 逻辑非。 |
|| (Logical 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 | 按条件筛选由查询返回的数据。 |
引用运算符
引用是指向特定实体集中的特定实体的逻辑指针(外键)。 实体 SQL 支持使用以下运算符对引用进行构造、解构和导航:
运算符 | 用途 |
---|---|
CREATEREF | 创建对实体集中的实体的引用。 |
DEREF | 取消引用一个引用值,并生成该取消引用的结果。 |
KEY | 提取引用或实体表达式的键。 |
NAVIGATE | 使您可以从一个实体类型到另一个实体类型对关系进行导航 |
REF | 返回对实体实例的引用。 |
集合运算符
实体 SQL 提供了各种功能强大的集运算符。 这包括与 Transact-SQL 运算符类似的集运算符,例如 UNION、INTERSECT、EXCEPT 和 EXISTS。 实体 SQL 还支持用于清除重复项 (SET)、成员身份测试 (IN) 和联接 (JOIN) 的运算符。 下表列出了实体 SQL 集运算符:
运算符 | 用途 |
---|---|
ANYELEMENT | 从多值集合中提取元素。 |
EXCEPT | 返回由 EXCEPT 操作数左侧的查询表达式返回而不由 EXCEPT 操作数右侧的查询表达式返回的任何非重复值的集合。 |
[NOT] EXISTS | 确定集合是否为空。 |
FLATTEN | 将一个由多个集合组成的集合转换为一个平展集合。 |
[NOT] IN | 确定某个值是否与某个集合中的任何值匹配。 |
INTERSECT | 返回 INTERSECT 操作数左右两边的两个查询表达式均返回的所有非重复值的集合。 |
OVERLAPS | 确定两个集合是否具有公共元素。 |
SET | 用于通过生成一个新集合(其中移除了所有重复元素)将对象集合转换为一个集。 |
UNION | 将两个或更多查询的结果组合成单个集合。 |
类型运算符
实体 SQL 提供了用于构造、查询和操作表达式(值)的类型的运算。 下表列出了用于处理类型的运算符:
运算符 | 用途 |
---|---|
CAST | 将一种数据类型的表达式转换为另一种。 |
COLLECTION | 用于 FUNCTION 操作中,以声明实体类型或复杂类型的集合。 |
IS [NOT] OF | 确定表达式的类型是否为指定类型或指定类型的某个子类型。 |
OFTYPE | 从查询表达式返回特定类型的对象集合。 |
命名类型构造函数 | 用于创建实体类型或复杂类型的实例。 |
MULTISET | 根据值列表创建多集的实例。 |
ROW | 从一个或多个值构造结构上类型化的匿名记录。 |
TREAT | 将特定基类型的对象视为指定派生类型的对象。 |
其他运算符
下表列出了其他实体 SQL 运算符:
运算符 | 用途 |
---|---|
+(字符串串联) | 用于在实体 SQL 中串联字符串。 |
。 (成员访问) | 用于访问结构化概念模型类型实例的属性或字段的值。 |
--(注释) | 包括实体 SQL 注释。 |
FUNCTION | 定义可在 Entity SQL 查询中执行的内联函数。 |