执行以下任一实体 SQL 运算符涉及类型实例的比较:
显式比较
相等运算:
=
!=
排序作:
<
<=
>
>=
可为空性作:
为空
不为 NULL
显式区分
相等性区别:
独特
按组汇总
排序区别:
- 排序依据
隐式区别
设置作和谓词(相等):
联盟
交汇
EXCEPT
SET
重叠
项谓词(相等):
- IN
支持的组合
下表显示了每种类型的比较运算符支持的所有组合:
类型 | = != |
GROUP BY DISTINCT |
UNION INTERSECT EXCEPT SET 重叠 |
和 |
<
<= > >= |
按排序 |
IS NULL IS NOT NULL |
---|---|---|---|---|---|---|---|
实体类型 | Ref1 | 所有属性2 | 所有属性2 | 所有属性2 | 引发3 | 引发3 | Ref1 |
复杂类型 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 |
行 | 所有属性4 | 所有属性4 | 所有属性4 | 引发3 | 引发3 | 所有属性4 | 引发3 |
基元类型 | 特定于服务提供商 | 特定于服务提供商 | 特定于服务提供商 | 特定于服务提供商 | 特定于服务提供商 | 特定于服务提供商 | 特定于服务提供商 |
多集 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 | 引发3 |
参考 | 是5 | 是5 | 是5 | 是5 | Throw | Throw | 是5 |
关联 类型 |
引发3 | Throw | Throw | Throw | 引发3 | 引发3 | 引发3 |
1将隐式比较给定实体类型实例的引用,如以下示例所示:
SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != p2 OR p1 IS NULL
无法将实体实例与显式引用进行比较。 如果尝试此作,则会引发异常。 例如,以下查询将引发异常:
SELECT p1, p2
FROM AdventureWorksEntities.Product AS p1
JOIN AdventureWorksEntities.Product AS p2
WHERE p1 != REF(p2)
阿拉伯数字复杂类型的属性在发送到商店之前被平展,因此它们变得可比(只要其所有属性都是可比的)。 另请参阅 4。
3Entity Framework 运行时会检测不受支持的情况,并引发有意义的异常,而无需与提供程序/存储相关联。
4尝试比较所有属性。 如果有一个属性属于非可比类型(如文本、ntext 或图像),则可能会引发服务器异常。
5比较引用的所有单个元素(这包括实体集名称和实体类型的所有键属性)。