2013-12-18 54 views
0

我有一個表轉換一行到我如何轉換我的表中的行,列值 爲如列

 
emp id 
1 
2 
3 
4 

,我想我的輸出

 
1 2 3 4 

我也使用在oracle和crosstab中在postgres中樞軸轉動,但無法獲得所需的解決方案,如上所示。

+1

「*無法獲得期望的解決方案*」不是一個可接受的問題描述。 –

+0

也許這可以幫助http://stackoverflow.com/questions/15491661/dynamic-pivot-in-oracle-sql或這個http://asktom.oracle.com/pls/asktom/f?p=100:11: 0 :: NO :: P11_QUESTION_ID:2648932900346131308 –

+0

的[甲骨文行到列變換(http://stackoverflow.com/questions/9582218/oracle-rows-to-column-transformation)可能重複 –

回答

0

使用該腳本,並將其更改爲你的價值觀,從而獲得所需結果

SELECT * FROM (SELECT emp_id, emp_points 
    FROM emp_data) 
    PIVOT (
       SUM(emp_points) AS sum_emp_points 
       FOR (emp_id) IN (1 AS [1], 2 AS [2],3 AS [3],4 AS [4]) 
      ); 
+0

這不會像一個通用的解決方案,但特定於問題中描述的數據。最好是制定通常適用於沒有數據類型或長度限制的類似情況的解決方案。 – ADTC

+0

我只能針對具體的問題提供具體的答案,並對數據進行一些清晰的解釋。 – Anoop

1

檢查listagg function。注意你至少需要Oracle 11。

+0

Postgres有'arrayagg' ..值得一提! – ADTC

0
select * from (select empno from t7) pivot(min(empno) for empno in (1,2,3,4)); 
+0

select * from(從your_table中選擇emp_id)pivot(min(emp_id)for emp_id in(1,2,3,4)); – Sai