zoukankan      html  css  js  c++  java
  • oracleI基础入门(10)EXISTS Crazy

    EXISTS
    在上一页中,我们用 IN 来连接内查询和外查询。另外有数个方式,例如 >, <, 及 =,
    都可以用来连接内查询和外查询。 EXISTS 也是其中一种方式。基本上, EXISTS 是用来测试内查询有没有产生任何结果。如果有的话,系统就会执行外查询中的 SQL。若是没有的话,那整个 SQL 语句就不会产生任何结果。
    EXISTS 的语法是:
    SELECT "栏位1"FROM "表格1"WHERE EXISTS(SELECT *FROM "表格2"  WHERE [条件])
    在内查询中,我们并不一定要用 * 来选出所有的栏位。我们也可以选择表格 中的任何栏
    位。这两种做法最后的结果是一样的。
    来看一个例子。假设我们有以下的两个表格:
    Store_Information 表格
    store_name                     Sales                         Date
    Los Angeles                     $1500                        Jan-05-1999
    San Diego                        $250                         Jan-07-1999
    Los Angeles                      $300                         Jan-08-1999
    Boston                              $700                         Jan-08-1999
    Geography 表格
    region_name           store_name
    East                        Boston
    East                        New York
    West                       Los Angeles
    West                        San Diego
    而我们打入的 SQL 是:
    SELECT SUM(Sales) FROM Store_Information
    WHERE EXISTS (SELECT * FROM Geography
    WHERE region_name = 'West')
    我们会得到以下的答案:
    SUM(Sales)
    2750
    乍看之下,这个答案似乎不太正确,因为内查询有包含一个 [region_name = 'West'] 的条件,
    可是最后的答案并没有包含这个条件。实际上,这并没有问题。在这个例子中,内查询产生
    了超过一笔的资料,所以 EXISTS 的条件成立,所以外查询被执行。而外查询本身并没有
    包含 [region_name = 'West'] 这个条件。

  • 相关阅读:
    Lighting maps_练习二
    Lighting maps_练习一
    Materials_练习
    Basic Lighting_练习二
    *201809-3
    程序设计思维与实践 Week14 作业 (3/4/数据班)
    程序设计思维与实践 Week14 限时大模拟 (3/4/数据班)
    程序设计思维与实践 Week15 作业 (3/4/数据班)
    程序设计思维与实践CSP-M4补题
    CCF201609-3
  • 原文地址:https://www.cnblogs.com/flyscan/p/2545959.html
Copyright © 2011-2022 走看看