oracle select多行合并
时间: 2023-09-10 16:02:50 浏览: 112
Oracle多行记录合并
在Oracle中,可以使用连接操作符将多行合并成一行。
首先,需要使用自连接(self join)来将同一个表的多行连接起来。假设有一个表名为"table1",其中包含两列:"column1"和"column2"。我们想要将所有具有相同"column1"值的行合并成一行,可以使用以下查询语句:
SELECT t1.column1,
LISTAGG(t1.column2, ',') WITHIN GROUP (ORDER BY t1.column2) AS combined_values
FROM table1 t1
GROUP BY t1.column1;
在这个查询中,"LISTAGG"函数用于将同一个"group by"分组中的多个行的值合并成一个字符串。在"WITHIN GROUP"子句中,我们可以指定将字符串中的每个值按照特定的顺序进行排序。在这个例子中,我们按照"column2"进行了排序。
执行以上查询后,将获得一个结果集,其中每个不同的"column1"值将仅出现一次,而"column2"的值将以逗号分隔的字符串的形式出现。例如,如果"table1"中有以下数据:
column1 | column2
-----------------
1 | A
1 | B
2 | C
2 | D
执行以上查询后,将得到以下结果:
column1 | combined_values
-------------------------
1 | A,B
2 | C,D
通过这种方式,我们可以将多行合并成一行,并在结果中以单一值的形式显示。
阅读全文