postgresql----ANY/SOME&&ALL
2024-08-24 14:05:07
一.ANY/SOME
WHERE expression operator ANY (subquery)
WHERE expression operator SOME (subquery)
其实ANY和SOME在这里是同等效的,子查询的结果集只能是一个字段,左边表达式使用operator对结果集的每一行进行一次比较运算,如果有一个运算结果是'TRUE',则表达式结果为'TRUE',如果比较结果全部是'FALSE'表达式结果才是'FALSE'。
> ANY 大于子查询结果中的某个值
< ANY 小于子查询结果中的某个值
>= ANY 大于或等于子查询结果中的某个值
<= ANY 小于或等于子查询结果中的某个值
= ANY 等于子查询结果中的某个值,相当于IN
!= ANY 不等于子查询结果中的某个值
示例1.查询tbl_insert表,条件是字段a大于表tbl_test字段f某一行中的值
test=# select * from tbl_insert where a > any(select f from tbl_test);
a | b | c
---+---+-------
2 | 2 | 22
3 | 3 | 33
4 | 4 | 44
5 | 5 | 51
6 | 6 | 1
6 | 6 | 61
6 | 6 | 661
7 | 7 | 3%1
8 | 8 | 3%_1
8 | 8 | 3_%_1
7 | 7 | abc
7 | 7 | ABc
7 | 7 | aBC
(13 rows)
二.ALL
WHERE expression operator ALL(subquery)
同样子查询中仍只能返回一个字段,与子查询结果集每一行进行比较结果全部是'TRUE'表达式结果才是'TRUE',否则为'FALSE'。
> ALL 大于子查询结果中的所有值
< ALL 小于子查询结果中的所有值
>= ALL 大于或等于子查询结果中的所有值
<= ALL 小于或等于子查询结果中的所有值
= ALL 等于子查询结果中所有值(除非子查询的结果全部相等,所以实际上没什么意义)
!= ALL 不等于子查询结果中的任何一个值,相当于NOT IN
示例1.查询tbl_insert表中a最大的行
test=# select * from tbl_insert where a = (select max(a) from tbl_insert);
a | b | c
---+---+-------
8 | 8 | 3%_1
8 | 8 | 3_%_1
(2 rows) test=# select * from tbl_insert where a >= all(select a from tbl_insert);
a | b | c
---+---+-------
8 | 8 | 3%_1
8 | 8 | 3_%_1
(2 rows)
示例2.查询tbl_insert表中a最小的行
test=# select * from tbl_insert where a <= all(select a from tbl_insert);
a | b | c
---+---+----
1 | 1 | 11
(1 row) test=# select * from tbl_insert where a = (select min(a) from tbl_insert);
a | b | c
---+---+----
1 | 1 | 11
(1 row)
最新文章
- ubuntu 14.04安装pypcap
- vim ---- 一键自动indent的命令
- Kingdom of Obsession---hdu5943(二分匹配)
- C#微信公众号开发-MVC模式公共类封装
- mfc中CString转化为string的方法
- 小白学数据分析----->;付费用户生命周期研究
- 云计算之路-阿里云上:2014年6月12日12点IIS请求到达量突降
- mysql封装类
- centos6 下安装xfce+vnc
- WPF中ListBox的项ListBoxItem被选中的时候Background变化
- linux的fork函数
- 【Android 复习】:Android之ViewFlipper(一)
- 【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码
- 用django搭建一个简易blog系统(翻译)(一)
- 简单 实现CombineFileInputFormat
- KafKa介绍(分布式架构)
- javascript数组集锦
- Oracle 存储过程的导出导入序列的导出
- python写入文本报错TypeError: expected a string or other character buffer object
- docker下运行labview2010
热门文章
- ADC相关参数之---INL和DNL
- 取石子(好学的C++)
- yii2的Console定时任务创建
- hbase学习 rowKey的设计-4
- 第五章 使用 SqlSession(MyBatis)
- mysqlbinlog基于某个偏移量进行数据的恢复(重做),--start-position,--stop-position的使用方法
- MongoDB创建表步骤,Mongo常用的数据库操作命令,查询,添加,更新,删除_MongoDB 性能监测
- Python 字符串处理(转)
- linux文件类型详解
- iOS - 布局重绘机制相关方法的研究