zoukankan      html  css  js  c++  java
  • postgresql----ANY/SOME&&ALL

    一.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)
  • 相关阅读:
    Mybatis主配置文件常见使用讲解
    Mybatis导入原生配置文件
    分页查询时,使用cookie保存上次的查询条件。jQuery实现方法以及中间遇到的坑
    jQuery实现checkbox即点即改,批量计数,以及中间遇到的坑
    ()IT 职场经验)一位10年Java工作经验的架构师的经验分享,感觉很受用。
    SpringMVC的Controller
    Spring MVC执行原理和基于Java的配置过程
    集成学习综述笔记
    generalization error
    Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TLS connection failed
  • 原文地址:https://www.cnblogs.com/alianbog/p/5618094.html
Copyright © 2011-2022 走看看