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

     

  • 相关阅读:
    combobox下拉框只能选择不能编辑
    nginx 虚拟主机
    nginx加密网站
    nginx平滑升级
    http网站加密
    CentOS下网卡启动、配置等ifcfg-eth0教程
    CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
    【RedHat/Centos】利用iso镜像做本地yum源 转
    centOS6.0 64 位将光盘作为yum源(转)
    Linux安装无线网卡驱动,实现Linux无线上网 转
  • 原文地址:https://www.cnblogs.com/xlzfdddd/p/10150320.html
Copyright © 2011-2022 走看看