2012-12-06 70 views
1

我已经包含信息的表如下:转换多行到一行多列

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。

回答

1

您可以使用CASE语句进行sim ple查询。
或使用tablefunc模块的crosstab()功能更复杂的情况和更好的性能。

你可以找到在此相关的问题这两种情况下的例子:
PostgreSQL Crosstab Query

+0

感谢您的快速回答,但是当我尝试此交叉表函数时,它给了我一个错误 - “错误:函数交叉表(未知)不存在” – Julian

+0

@dna:您需要安装附加模块'tablefunc'。按照我的链接,并阅读我的答案。 –

+0

我不能安装任何东西,因为我不是服务器上的管理员:)这就是为什么我必须找到另一种方式来处理问题:)感谢重播:) – Julian

0

这被称为PIVOT。

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

穷人的透视:

+0

这标记[PostgreSQL的],没有'PIVOT'关键字。你可能会想到SQL Server。 –

+0

@ErwinBrandstetter,这就是为什么穷人的链接。 – Ben

+0

@ErwinBrandstetter,确定它是从我链接的链接! – Ben