zoukankan      html  css  js  c++  java
  • 5 高级数据过滤

    5.1 组合WHERE子句

    ADD操作符

    SELECT prod_id
    FROM Products
    WHERE vend_id = 'DLL01' AND prod_price <= 4;

    如果要增加多个过滤条件,每个条件之间都要加AND关键字。

    OR操作符

    用来表示检索任一给定条件的行

    ADD和OR结合

    ADD在求值的过程中优先级比OR更高。

    WHERE vend_id = 'DLL01' OR vend_id  = 'BRS01' AND prod_price >= 10;

    当SQL看到上述WHERE子句时,会优先处理AND操作符。它的理解为:由BRS01制造的价格为10美元以上的产品以及由DLL01制造的所有产品,而不管价格如何。

    解决此问题的方法是使用圆括号对操作行为进行明确分配。

    WHERE ( vend_id = 'DLL01' OR vend_id  = 'BRS01' ) AND prod_price >= 10;

    此时SQL语句变为由DLL01或者BRS01制造的价格为10美元以上的产品。

    5.2 IN操作符

    用来指定条件范围,范围中的每个条件都可以进行匹配。IN 取一组由逗号分隔,括在圆括号里合法值。

    WHERE vend_id IN ( 'DLL01',BRS01" )

    此SQL语句检索DLL01和BRS01制造的所有产品。

    由此看来,IN操作符完成了与OR相同的工作。

    5.3 NOT操作符

    WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。 

    下面的例子说明NOT的使用。为了列出除10021003之外的所有供应商制造的产品,可编写如下的代码: 

    SELECT prod_name, prod_price
    FROM Products
    WHERE vend_id NOT IN ( 1002,1003)
    ORDER BY prod_name;

    为什么使用NOT?对于简单的WHERE子句,使用NOT确实没有什么优势。但在更复杂的子句中, NOT是非常有用的。例如,在与IN操作符联合使用时, NOT使找出与条件列表不匹配的行非常简单。 

     

  • 相关阅读:
    hdu4331 Image Recognition 就暴力啊。。啊。。
    [置顶] ASP.Net中服务器控件的生命周期
    Windows下通过脚本快速修改IP地址
    java对象转json应clone,避免生成json串有问题
    Oracle表空间常用操作
    redhat5安装jdk6、eclipse和tomcat6
    Oracle 表的常见操作
    一道来自华为的C机试题目
    [置顶] 获取系统时间的方法--linux
    html5 命运之轮生产
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10150320.html
Copyright © 2011-2022 走看看