精华内容
下载资源
问答
  • ORACLE10中可使用以下方法:SELECT n_sec_code, wmsys.wm_concat (c_researcher_code) as resultFROM m_researcher_stock_relGROUP BY n_sec_code
    
    

    在ORACLE10中可使用以下方法:

    SELECT n_sec_code, wmsys.wm_concat (c_researcher_code) as result

    FROM m_researcher_stock_rel

    GROUP BY n_sec_code

    展开全文
  • oracle查询多行数据合并成一行数据 在工作中遇见的oracle知识,多行合并成一行,记录一下 1.取出需要的数据,代码: (SELECT to_char(m.f_meetdate, 'yyyy-MM-dd'), decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审...

    oracle查询多行数据合并成一行数据


    在工作中遇见的oracle知识,多行合并成一行,记录一下
    1.取出需要的数据,代码:

    (SELECT to_char(m.f_meetdate, 'yyyy-MM-dd'),
            decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)'),
            m.f_meetingresult
     FROM tb_guar_meetrecord m
     where m.f_billid = 1600
          and m.f_billcode = 'period')
    

    取出的数据:
    0
    2.现在想把这两行数据合并成一行,并且一行的多字段合并成一个字段;
    代码:

    (SELECT (to_char(m.f_meetdate, 'yyyy-MM-dd') || ' ' ||
             decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)') || ' ' ||
              m.f_meetingresult)
     FROM tb_guar_meetrecord m
     where m.f_billid = 1600
           and m.f_billcode = 'period')
    

    取出的数据:
    在这里插入图片描述
    3.现在就要把这个两行合并,需要使用oracle wm_concat(column)函数实现;
    代码:

    (SELECT (replace(wm_concat(to_char(m.f_meetdate, 'yyyy-MM-dd') || ' ' ||
                     decode(nvl(m.f_meetsourceid, 0),0,'',1,'(评审会)',2,'(审保会)',3,'(公司风管会)',4,'(集团风管会)',5,'(集团董事会)',6,'(备份)') || ' ' ||
                     m.f_meetingresult),
                                  ',',
                                  '<br/>'))
      FROM tb_guar_meetrecord m
      where m.f_billid = 1600
            and m.f_billcode = 'period')
    

    取出的数据:
    在这里插入图片描述
    这样就实现多行数据合并成一行了。
    replace(wm_concat(name),’,’,‘mark’)加上replace是把取出的数据中的‘,’换成我想要的‘mark’。
    上面用到了decode函数,这个函数和if判断语句效果相同。

    展开全文
  • oracle多行数据合并成一

    万次阅读 2015-04-22 10:43:41
    要求查询显示形式如下(即把name字段的所有数据拼起来合并到一显示) AllName 张三-李四-王五   select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_N...
    表test(id,name)  数据如下:
    id   name
    1    张三
    2   李四
    3   王五
    要求查询显示形式如下(即把name字段的所有数据拼起来合并到一行显示)
        AllName
    张三-李四-王五
     
    select id ,listagg( name, ',' ) within group ( order by id ) as name from TABLE_NAME GROUP BY id;

     

    2------------------------

     

    t_table:col1,col2,col3,col4,col5,col6 
    其中col1和col2是每条记录都有值的, 
    col1    col2     col3    col4    col5     col6 
    jack    杰克      a       a1                   c1 
    jack    杰克      a                  b2 
    jack    杰克      b      a3        b3       c3 
    mary    玛丽     c      a4                   c4 
    mary    玛丽     d     a5        b5 
    mary    玛丽     c      a6       b6       c6 
      

    我想根据col1和col2的唯一决定,来把jack  杰克合成一条记录,mary 玛丽合成一条记录,即: 

    col1    col2     col3       col4               col5       col6 
    jack    杰克    a,a,b      a1,a3           b2,b3      c1,c3 
    mary    玛丽    c,d,c      a4,a5,a6      b5,b6      c4,c6       

    请问用Oracle该如何写SQL啊?

    SQL:

    select t.col1,
           t.col2,
           wm_concat(t.col3) col3,
           wm_concat(t.col4) col4,
           wm_concat(t.col5) col5,
           wm_concat(col6) col6
      from t_table t
     group by t.col1, t.col2

     

    展开全文
  • Oracle 多行数据合并成一

    千次阅读 2018-12-27 12:51:50
    方案一:wm_concat函数 select username, id, wmsys.wm_concat(subject) as subject, wmsys.wm_concat(score) as score from STUDENTSCORES group by username, id 方案二:listagg函数 select username, id, ...

    方案一:wm_concat函数
    select username, id, wmsys.wm_concat(subject) as subject, wmsys.wm_concat(score) as score
    from STUDENTSCORES
    group by username, id

    方案二:listagg函数
    select username, id, LISTAGG(subject, '-') within group(order by subject) as subject, LISTAGG(score, ',') within group(order by score) as score
    from STUDENTSCORES
    group by username, id

    方案三:常规sql
    select username, id, translate(ltrim(subject, '/'), '*/', '*,') as subject,translate(ltrim (score, '/'), '*/', '*,') as score
    from 
    (select row_number() over (partition by username, id order by username, id, lvl desc) as rn, username, id, subject, score
    from 
    (select username, id, level lvl,                            sys_connect_by_path (subject, '/') as subject, sys_connect_by_path (score, '/') as score
    from 
    (select username, id, subject, score,                                       row_number() over (partition by username,id order by username, id) as num from STUDENTSCORES order by username, id)
    connect by username = prior username and id = prior id and num - 1 = prior num))
    where rn = 1;

    注意:
    方案一中默认分隔符为 ‘,’
    方案二只适合11g之后的版本

    展开全文
  • 1.输入 2.输出   3. 查询代码 listagg SELECT s.Stuid, listagg(stuname, ',') within group(order by Stuid) stuname, s.Stusex FROM T_STU s group by s.Stuid, s.Stusex ...S...
  • Oracle合并拼接多行数据

    千次阅读 2017-11-22 14:26:22
    select wmsys.wm_concat(t.column) from tableName t;wmsys.wm_concat默认是用英文逗号‘,’拼接的,如果需要更换拼接符号,可以用replace函数。wmsys.wm_concat有个致命,拼接的字符串不能过长,所以,如果你能确定...
  • oracle合并多条数据不相同字段

    千次阅读 2019-06-28 10:00:21
    需要使用到函数wm_concat(),和分组group ...ps:当组内某条数据的name为null的时候,只拼接不为null的数据 如果多个字段值相同,可以同时作为分组条件 select wm_concat(t.name) from user t group by t.sex,t.age ...
  • 需要将数据库中的数据,从一行拆分为两行 原始表数据: 关联后的表数据: 需要拆分成的样子: 思路: 先把原始表数据里的 AM PM EVENING NIGHT 四个列合并为一个列。解决方案:|| 为连接符SELECT AM || ',' ||.....
  • Oracle数据查询时候,需要把多条记录转换成一条完整记录进行操作。这种情况一般分种,一种是固定个数和数值的合并,另外一种是非固定字段,非固定值的合并。很有用的
  • 表数据 将group by 后重复的数据拼接起来 SELECT t.job, wmsys.wm_concat(t.ename) as naems, count(1) FROM emp t GROUP BY t.job;...将多行数据转为一行数据 select wm_concat(t.ename) names from emp t;
  • 目标内容 select id 工单号, wm_concat(name) from 表名 group by id name 就是要合并的字段 只区分一个字段就加一个字段,多个就加多个分组 效果如下:
  • select ... into tableA from table insert into tableB select ... from table 区别:tableA 要求不存在,在执行该语句时会自动创建tableA  tableB 要求存在
  • 咋样用一条SQL吧这数据合成一条数据,a表的数据都一样,区别在于b表。a表和b表的公共字段a.accountid=b.accountid是这个,现在我想要一条数据,取别名也可以,下面这个是查询语句。 select a.accountid ,a....
  • oracle异库同表名的个数据库中数据合并数据表结构的修改
  • 我们日常查询数据时,经常会有将查询到的数据按照某一列分组显示(合并多行数据),比如: 表结构: create table t_user_course(username varchar(32),coursename varchar(100));   需要将以上数据按照...
  • oracle合并查询

    千次阅读 2015-06-29 16:32:11
    1). Union 该操作符用于取得个结果集的并集。当使用该操作符时,会自动去掉结果集中重复。...使用改操作符用于取得个结果集的差集,他只会显示存在第一个集合中,而不存在第二个集合中的数据
  • 后来在网上找了例子,可以把多行数据合并成一显示,查询速度快得惊人。当时没有好好研究其原理,现在有空摸索下其实现逻辑。 Template SQL: SELECT PICKING_KEY,TRANSLATE (LTRIM (text, '/'), '...
  • oracle 多行数据合并及去重查询

    千次阅读 2014-11-13 19:56:40
    创建测试表,并插入测试数据 SQL> create table t5(deptno int,name varchar2(20),say number); Table crea...
  • Oracle 查询结果多行数据合并为一

    万次阅读 2019-04-02 11:57:58
    使用函数 WM_CONCAT() 例: SELECT OID FROM AGENT;结果为: SELECT WM_CONCAT(OID) FROM AGENT;...如果需要将值与值之间的‘,’改为其他字符,比如‘、’可以这样写: ...SELECT REPLACE(WM_CONCAT(OID),',','、') ...
  • Oracle 上下合并两张表格

    千次阅读 2020-11-01 13:28:13
    Oracle 上下合并两张表格 题目:2查询所有教师和同学的name、sex和birthday. 插叙需要的结果: 基本思路:取别名,与集合思想 union 将教师与同学的表格需要上下合并的查找出来,然后别名修改成相同的就可以去...
  • ORACLE纯SQL实现多行合并

    千次阅读 2018-12-27 12:50:46
    ORACLE纯SQL实现多行合并 项目中遇到一个需求,需要将多行合并为一。 表结构如下: NAME Null Type ------------------------ --------- ----- N_SEC_CODE NOT NULL CHAR(6) C_RESEARC...
  • 各位大神好: 请教如下图如何把 zhao的price合计只显示一,求指点。谢谢 ![图片说明](https://img-ask.csdn.net/upload/201709/20/1505916649_5801.jpg)
  • ![图片说明](https://img-ask.csdn.net/upload/201703/22/1490150702_307569.png) 如图 假如表中存在前四行数据,将要合并两行数据,并且将不同值的 组成新的列来显示数据。该如何实现。
  • oracle 11g 以上的版本才有的一个将指定列名的多行查询结果,用 指定的分割符号 合并成一显示: 例如: 表原始数据: 需求:将 mb1_Transport_License_list 表中的数据,根据 transportation_license_id 数据...
  • Oracle】生成合并行报表

    千次阅读 2015-10-23 15:25:31
    数据量大的情况下很容易造成读者混乱,所以要将这个字段重复的数据合并。因此提供了下面的SQL: with xx as( -- 正常的查询语句 ) select decode(rn, 1, 字段1) as 字段1, 字段2 from ( select xx.*,row_number...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,724
精华内容 16,689
关键字:

oracle合并两行的部分数据