Oracle:将字段规范化为 CSV 字符串

Oracle: normalized fields to CSV string(Oracle:将字段规范化为 CSV 字符串)
本文介绍了Oracle:将字段规范化为 CSV 字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些看起来像这样的一对多规范化数据.

I have some one-many normalized data that looks like this.

a | x
a | y
a | z
b | i
b | j
b | k

什么查询会返回数据,使得多"方表示为 CSV 字符串?

What query will return the data such that the "many" side is represented as a CSV string?

a | x,y,z
b | i,j,k

推荐答案

Mark,

如果您使用的是 11gR2 版本,而谁不是 :-),那么您可以使用 listagg

If you are on version 11gR2, and who isn't :-), then you can use listagg

SQL> create table t (col1,col2)
  2  as
  3  select 'a', 'x' from dual union all
  4  select 'a', 'y' from dual union all
  5  select 'a', 'z' from dual union all
  6  select 'b', 'i' from dual union all
  7  select 'b', 'j' from dual union all
  8  select 'b', 'k' from dual
  9  /

Tabel is aangemaakt.

SQL> select col1
  2       , listagg(col2,',') within group (order by col2) col2s
  3    from t
  4   group by col1
  5  /

COL1  COL2S
----- ----------
a     x,y,z
b     i,j,k

2 rijen zijn geselecteerd.

如果您的版本不是 11gR2,而是高于 10gR1,那么我建议为此使用模型子句,如下所示:http://rwijk.blogspot.com/2008/05/string-aggregation-with-model-clause.html

If your version is not 11gR2, but higher than 10gR1, then I recommend using the model clause for this, as written here: http://rwijk.blogspot.com/2008/05/string-aggregation-with-model-clause.html

如果低于 10,那么您可以在 rexem 指向 oracle-base 页面的链接中或在上述博文中指向 OTN 线程的链接中看到几种技术.

If lower than 10, then you can see several techniques in rexem's link to the oracle-base page, or in the link to the OTN-thread in the blogpost mentioned above.

问候,罗布.

这篇关于Oracle:将字段规范化为 CSV 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)