0
点赞
收藏
分享

微信扫一扫

GBase 8s V8.8 SQL 指南:教程-4.2.2

目标践行者 2022-04-13 阅读 62

4.2.2 使用 IN 关键字来搜索集合中的元素
可以在 SQL 语句的 WHERE 子句中使用 IN 关键字来确定集合是否包含某元素。例如:
下列查询显示如何构造返回 mgr_name 和 department 的值的查询,其
中 Adams 是 direct_reports 列中集合的一个元素。
图: 查询
SELECT mgr_name, department 
 FROM manager
 WHERE 'Adams' IN direct_reports
图: 查询结果
mgr_name Sayles
 department marketing 
尽管可以使用带有 IN 关键字的 WHERE 子句来搜索简单集合中的特定集合。但是查询总
是返回整个集合。例如:下列查询返回集合的所有元素,其中 Adams 是 direct_reports 列中
集合的一个元素。
图: 查询
SELECT mgr_name, direct_reports
 FROM manager
 WHERE 'Adams' IN direct_reports
图: 查询结果
mgr_name Sayles
 direct_reports SET {Smith, Waters, Adams, Davis, Kurasawa}
如上所示,对集合列的查询返回整个集合,不是集合中的特定元素。
可以在 WHERE 子句中使用 IN 关键字来只引用简单集合。不能使用 IN 关键字来引用包
含本身就是集合的字段的集合。例如:不能使用 IN 关键字来引用 manager 表中
的 projects 列,原因是 projects 是嵌套集合。
可以在 SELECT 语句的 WHERE 子句中组合 NOT 和 IN 关键字来搜索不包含某元素
的集合。例如:下列查询显示返回 mgr_name 和 department的值的查询,其中 Adams 不
是 direct_reports 列中集合的元素。
图: 查询
SELECT mgr_name, department 
 FROM manager
 WHERE 'Adams' NOT IN direct_reports
图: 查询结果

有关如何对集合列中的元素进行技术的信息,请参阅基数函数。

 

举报

相关推荐

0 条评论