zoukankan      html  css  js  c++  java
  • oracle 输出结果集相连接 oracle 中的 CONCAT,substring ,MINUS 用法

    oracle 中的 CONCAT,substring ,MINUS 用法http://blog.csdn.net/love_rrr/archive/2009/03/25/4022623.aspx


    有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:

    MySQL: CONCAT()
    Oracle: CONCAT(), ||
    SQL Server: +
    CONCAT() 的语法如下:

    CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。

    来看几个例子。假设我们有以下的表格:

    Geography 表格

    region_name store_name
    East Boston
    East New York
    West Los Angeles
    West San Diego
    例子1:

    MySQL/Oracle:
    SELECT CONCAT(region_name,store_name) FROM Geography
    WHERE store_name = 'Boston';

    结果:

    'EastBoston'

    例子2:

    Oracle:
    SELECT region_name || ' ' || store_name FROM Geography
    WHERE store_name = 'Boston';

    结果:

    'East Boston'

    例子3:

    SQL Server:
    SELECT region_name + ' ' + store_name FROM Geography
    WHERE store_name = 'Boston';

    结果:

    'East Boston'





    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:

    MySQL: SUBSTR(), SUBSTRING()
    Oracle: SUBSTR()
    SQL Server: SUBSTRING()
    最常用到的方式如下 (在这里我们用SUBSTR()为例):

    SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字元。请注意,这个语法不适用于SQL Server上。

    SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。

    假设我们有以下的表格:

    Geography 表格

    region_name store_name
    East Boston
    East New York
    West Los Angeles
    West San Diego
    例1:

    SELECT SUBSTR(store_name, 3)
    FROM Geography
    WHERE store_name = 'Los Angeles';

    结果:

    's Angeles'

    例2:

    SELECT SUBSTR(store_name,2,4)
    FROM Geography
    WHERE store_name = 'San Diego';

    结果:

    'an D'





    MINUS 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中。如果有的话,那这一笔资料就被去除,而不会在最后的结果中出现。如果第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的结果内,那这笔资料就被抛弃。

    MINUS 的语法如下:

    [SQL 语句 1]
    MINUS
    [SQL 语句 2]

    我们继续使用一样的例子:

    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
    Internet Sales 表格
    Date Sales
    Jan-07-1999 $250
    Jan-10-1999 $535
    Jan-11-1999 $320
    Jan-12-1999 $750
    而我们要知道有哪几天是有店面营业额而没有网络营业额的。要达到这个目的,我们用以下的 SQL 语句:

    SELECT Date FROM Store_Information
    MINUS
    SELECT Date FROM Internet_Sales

    结果:

    Date
    Jan-05-1999
    Jan-08-1999
    "Jan-05-1999", "Jan-07-1999", and "Jan-08-1999" 是 "SELECT Date FROM Store_Information" 所产生的结果。在这里面,"Jan-07-1999" 是存在于 "SELECT Date FROM Internet_Sales" 所产生的结果中。因此 "Jan-07-1999" 并不在最后的结果中。

    请注意,在 MINUS 指令下,不同的值只会被列出一次。
  • 相关阅读:
    第一节,Django+Xadmin打造上线标准的在线教育平台—创建用户app,在models.py文件生成3张表,用户表、验证码表、轮播图表
    Tensorflow 错误:Unknown command line flag 'f'
    Python 多线程总结
    Git 强制拉取覆盖本地所有文件
    Hive常用函数 傻瓜学习笔记 附完整示例
    Linux 删除指定大小(范围)的文件
    Python 操作 HBase —— Trift Trift2 Happybase 安装使用
    梯度消失 梯度爆炸 梯度偏置 梯度饱和 梯度死亡 文献收藏
    Embedding 文献收藏
    深度学习在CTR预估中的应用 文献收藏
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400549.html
Copyright © 2011-2022 走看看