Oracle把多行转一列逗号分割
warning:
这篇文章距离上次修改已过418天,其中的内容可能已经有所变动。
在Oracle中,可以使用LISTAGG函数将多行转换为逗号分隔的单列值。以下是一个示例:
假设有一个表my_table,它有两列:id和name。
CREATE TABLE my_table (
id INT,
name VARCHAR2(50)
);
INSERT INTO my_table (id, name) VALUES (1, 'Alice');
INSERT INTO my_table (id, name) VALUES (2, 'Bob');
INSERT INTO my_table (id, name) VALUES (3, 'Charlie');要将name列的多行转换为逗号分隔的单列值,可以使用以下查询:
SELECT LISTAGG(name, ',') WITHIN GROUP (ORDER BY id) AS names
FROM my_table;这将输出一个单独的行,其中包含所有名字,由逗号分隔。例如:
names
--------------------
Alice,Bob,Charlie
评论已关闭