2013-12-18 5 views
0

как я могу преобразовать строки моей таблицы в качестве значения столбца для, например, у меня есть таблицаПреобразовать строки в столбцы

 
emp id 
1 
2 
3 
4 

, и я хочу, чтобы мой вывод как

 
1 2 3 4 

я также использую поворот в оракуле и кросс-таблицу в 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

Возможный дубликат [Oracle Rows to Column Transformation] (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

выберите * from (выберите emp_id from your_table) pivot (min (emp_id) для emp_id в (1,2,3,4)); – Sai

Смежные вопросы