【问题标题】:combining two colums in one column在一列中合并两列
【发布时间】:2012-09-11 06:40:10
【问题描述】:

我有一个很不寻常的任务,我越想越容易去邮局。

数据如下所示:

-----------------------------------------------------------------------------------------
| user_id | prof_org_id | prof_org_fi | prof_org_pos_fi | prof_org_en | prof_org_pos_en |
 ----------------------------------------------------------------------------------------
| 3600520 |   70000     |1100         |  as             |  1600       |   ad            |
|  1020   |   80000     |  0          |                 |     0       |                 |  
| 3600520 |   90000     | 2500        | bs              |  1700       |   bd            |
| 3600624 |   100000    |100          |   d             |  1002       |    c            |
-----------------------------------------------------------------------------------------

现在我想要的是:

------------------------------------------------
| user_id | prof_org_fi     | prof_org_en      |
 -----------------------------------------------
| 3600520 | 1100,as;2500,bs | 1600,ad;1700,bd | 
|  1020   |    0,           |   0,             |  
| 3600624 |  100,d          |  1002,c          |
------------------------------------------------

我认为它需要一些功能,不是吗? 提前致谢

create table USER_MULTI_PROF_ORGS
(
  USER_ID              INTEGER not null,
  PROF_ORG_ID          INTEGER not null,
  PROF_ORG_FI          VARCHAR2(128),
  PROF_ORG_POS_FI      VARCHAR2(4000),
  PROF_ORG_EN          VARCHAR2(128),
  PROF_ORG_POS_EN      VARCHAR2(4000),
);

insert into USER_MULTI_PROF_ORGS (USER_ID, PROF_ORG_ID, PROF_ORG_FI, PROF_ORG_POS_FI, PROF_ORG_EN, PROF_ORG_POS_EN)
values (3600520, 70000, '1100', 'ad', '1600', 'ad');
insert into USER_MULTI_PROF_ORGS (USER_ID, PROF_ORG_ID, PROF_ORG_FI, PROF_ORG_POS_FI, PROF_ORG_EN, PROF_ORG_POS_EN)
values (1020, 80000, '0', null, '0', null);
insert into USER_MULTI_PROF_ORGS (USER_ID, PROF_ORG_ID, PROF_ORG_FI, PROF_ORG_POS_FI, PROF_ORG_EN, PROF_ORG_POS_EN)
values (3600520, 90000, '2500', 'bs', '1700', 'bd');
insert into USER_MULTI_PROF_ORGS (USER_ID, PROF_ORG_ID, PROF_ORG_FI, PROF_ORG_POS_FI, PROF_ORG_EN, PROF_ORG_POS_EN)
values (3600624, 100000, '100', 'd', '1002', 'c');

【问题讨论】:

  • 这不是和yesterday's question差不多吗?在执行listagg 之前,您只需要将两列连接在一起。您确实需要付出一些努力,如果有人给您解决方案并且您不尝试理解和适应它,您将不会学到任何东西。
  • 谢谢亚历克斯。是的,连接是我所缺少的。

标签: oracle plsql oracle11g plsqldeveloper


【解决方案1】:

如果您使用的是 Oracle 11g R2,请查看 LISTAGG 函数。

【讨论】:

  • 是的,但正如我之前的评论中所述,昨天的问题已经涵盖了这部分内容。
猜你喜欢
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2014-05-09
  • 1970-01-01
  • 2015-06-20
  • 2020-11-08
相关资源
最近更新 更多