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'] 这个条件。

  • 相关阅读:
    软件开发流程实例之四 :编码和测试
    软件开发流程实例之三 :系统设计
    jQuery入门[4]-链式代码
    jQuery入门[1]-构造函数
    jQuery入门[2]-选择器
    自编类库,添加引用,编译运行时显示“未能找到”
    SelectByShape 工具的实现
    TOC控件不显示内容列表
    鹰眼功能的实现(步骤,无代码)
    INumericFormat 接口
  • 原文地址:https://www.cnblogs.com/flyscan/p/2545959.html
Copyright © 2011-2022 走看看