zoukankan      html  css  js  c++  java
  • Oracle 查询合并列

    在ORACLE  查询时,有时要将多个列合并成一行,其方法如下:

    1. decode 函数

      decode 函数的语法为:

       decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 

          或 decode(条件,值1,返回值1,返回值2,...值n,返回值n,缺省值) 

      其定义如下::

    IF 条件=值1 THEN 
    RETURN(翻译值1) 
    ELSIF 条件=值2 THEN 
    RETURN(翻译值2) 
    ...... 
    ELSIF 条件=值n THEN 
    RETURN(翻译值n) 
    ELSE 
    RETURN(缺省值) 
    END IF 
    

     

    例如:decode(字段或字段的运算,值1,值2,值3) 
    这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 
    当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多 

    2. wmsys.wm_concat 函数

      把某一列合并,其语法为: wm_concat(列名)

      把合并后的逗号(默认)换成其它的符号,比如|号 , replace(wm_concat(列名),',','|')

    3. ||  连接符号

      语法为: select col1,col2||'【' || col3|| '】' as A , col4 from table1  其中 ‘【’ 是自行加入的符号,可根据 需要进行替换

    4. 自定义sql 语句

    SELECT   n_sec_code, TRANSLATE (LTRIM (text, '/'), '*/', '*,') researcherList
        FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,
                      lvl DESC) rn,
                     n_sec_code, text
                FROM (SELECT     n_sec_code, LEVEL lvl,
                                 SYS_CONNECT_BY_PATH (c_researcher_code,'/') text
                            FROM (SELECT   n_sec_code, c_researcher_code as c_researcher_code,
                                           ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x
                                      FROM m_researcher_stock_rel
                                  ORDER BY n_sec_code, c_researcher_code) a
                      CONNECT BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x))
       WHERE rn = 1
    ORDER BY n_sec_code;
    

      
    只需要把SQL中“n_sec_code” 换为你的用来汇总的列,“c_researcher_code”替换为需合并文本的列,“m_researcher_stock_rel”替换为你的表名

    参考文章:


    http://www.cnblogs.com/heekui/archive/2009/07/30/1535516.html
    http://blog.csdn.net/catoop/article/details/8124561

  • 相关阅读:
    (六)面向对象进阶
    (五)绑定方法与非绑定方法
    (四)封装
    (三)多态与多态性
    (二)继承与派生
    (一)面向对象的程序设计
    网络协议
    三.计算机网络简介
    二.计算机的发展史及多道技术
    一.计算机基础知识
  • 原文地址:https://www.cnblogs.com/wisdo/p/7259689.html
Copyright © 2011-2022 走看看