SQL如何将行追加到列?

时间:2015-07-31 16:57:21

标签: sql database oracle append transpose

我有一个包含许多行和两列的表。例如,我的表格看起来像这样:

ID   Name

1     Bob

2    Jerry

3    Tom

4    John

最终我想要的是桌子看起来像这样:

ID Name ID Name ID Name ID Name

1  Bob   2 Jerry 3 Tom 4 John

我如何在SQL中执行此操作?

由于

1 个答案:

答案 0 :(得分:0)

您可以使用LISTAGG汇总一行中的行,但就像我说的那样,它只会是一列。顺便说一句,据我所知,你不能有多个具有相同名称的列:

SQL Fiddle

Oracle 11g R2架构设置

CREATE TABLE Table1
    ("ID" int, "Name" varchar2(5))
;

INSERT ALL 
    INTO Table1 ("ID", "Name")
         VALUES (1, 'Bob')
    INTO Table1 ("ID", "Name")
         VALUES (2, 'Jerry')
    INTO Table1 ("ID", "Name")
         VALUES (3, 'Tom')
    INTO Table1 ("ID", "Name")
         VALUES (4, 'John')
SELECT * FROM dual
;

查询1

SELECT listagg ("ID" || ' ' || "Name", ' ') WITHIN GROUP (ORDER BY ID) Result
FROM Table1

<强> Results

|                     RESULT |
|----------------------------|
| 1 Bob 2 Jerry 3 Tom 4 John |