Oracle把多行转一列逗号分割
在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
评论已关闭