Oracle将列与逗号分隔值组合在一起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle将列与逗号分隔值组合在一起相关的知识,希望对你有一定的参考价值。

我有一个表格,每行的值为“1,2,3,4,5,6,7”

ID Value
101  5,6,7
201  8,9,3
301  3,4,5

值列值是其他表B表B的外键

5 A
6 C
7 N

有什么方法可以在一个查询中将这两个表连接在一起吗?我想传递101并获得A C N值。

答案

如果您的模型如图所示,这样的话?

select a.id, listagg(new_value, ',') within group (order by new_value) new_value
  from a 
       inner join b 
               on ','||a.value||',' like '%,'|| b.value ||',%'
 group by a.id

http://www.sqlfiddle.com/#!4/74e46/1

以上是关于Oracle将列与逗号分隔值组合在一起的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery 将列作为逗号分隔值

MSSQL:如何创建将列显示为逗号分隔值的视图 [重复]

有没有办法将列的值聚合和/或连接为 Group By 查询中的逗号分隔项?

如何将列与列组合以获取数据列表中的结果(Python)?

如何将字符串列表连接在一起,每个值之间用逗号分隔?

将列中逗号分隔的字符串拆分为单独的行