2012-12-06 67 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