zoukankan      html  css  js  c++  java
  • SQL查询语句中,any和all有什么区别?

    any要求你的结果等于任何一个就可以了。
    all是所有的

    例:
    从销货表中挑出订单金额大于“E0013这位业务员在1996/11/10这天所接的任一张订单的金额”的所有订单,并显示相关字段信息
    select sale_id, tot_amt
    from sales
    where tot_amt > any
    (select tot_amt from sales
    where sale_id='e0013'
    and order _date='1996/11/10')


    把ANY换成ALL时,语句表示的意思就是订单金额大于“E0013这位业务员在1996/11/10这天所接的每一张订单的金额”的所有订单

    另一个实例:

    create table #A(id int)
    go
    insert into #A values(1)
    insert into #A values(2)
    insert into #A values(3)
    insert into #A values(4)
    go

    --All:对所有数据都满足条件,整个条件才成立,例如:5大于所有返回的id
    select *
    from #A
    where 5>All(select id from #A)
    go

    --Any:只要有一条数据满足条件,整个条件成立,例如:3大于1,2
    select *
    from #A
    where 3>any(select id from #A)
    go
    --Some和Any一样 

    备注:Any的用法中,在作数字比对时,也可以改用先select subquery的min/max value的方法,某些情况下效率更高

  • 相关阅读:
    2017-3-7 leetcode 66 119 121
    2017-3-6 leetcode 118 169 189
    2017-3-5 leetcode 442 531 533
    c++ std
    2017-3-4 leetcode 414 485 495
    2017-3-3 leetcod 1 35 448
    想做手游
    编程规范
    1165: 零起点学算法72——首字母变大写
    1164: 零起点学算法71——C语言合法标识符(存在问题)
  • 原文地址:https://www.cnblogs.com/cheari/p/5535820.html
Copyright © 2011-2022 走看看