将多行转换为具有多列的一行

时间:2012-12-06 13:14:30

标签: sql postgresql crosstab

我的表格包含以下信息:

idnumber     applic_id      cctype     ccnumber
---------  ------------    --------   ----------
    1           23            1         223445
    2           23            2         345567

我需要一个查询,使其成为:

idnumber     applic_id      cctype     ccnumber  idnumber     applic_id      cctype     ccnumber
---------  ------------    --------   ----------  ---------  ------------    --------   ----------
    1           23            1         223445       2           23            2         345567 

有人有线索吗?我正在使用PostgreSQL 8.3。

2 个答案:

答案 0 :(得分:1)

您可以使用CASE语句进行简单查询 或者使用tablefunc模块的crosstab()功能来处理更复杂的情况和更好的性能。

您可以在此相关问题下找到这两个案例的示例:
PostgreSQL Crosstab Query

答案 1 :(得分:0)

这被称为PIVOT。

您可以使用PostgreSQL中不存在的PIVOT关键字,或者像这样使用穷人的支点:

穷人的支点: