• 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使找出与条件列表不匹配的行非常简单。 

     

  • 相关阅读:
    [译]理解Javascript的异步等待
    [译]为什么我要离开gulp和grunt转投npm脚本的怀抱
    [译]代码审查的重要性
    [译]转译器: 今日大不同
    猴年马月都到了
    关于“我是谁”的思考
    ASP.net MVC基础
    利用Spring.Net技术打造可切换的分布式缓存读写类
    JQuery WEB前段开发
    Javascript——说说js的调试
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10150320.html
Copyright © 2020-2023  润新知