[英]Oracle SQL - Rows into Columns
我想知道在Oracle 11g中是否可以將某些行顯示為列。
我要以下
id language text
--------------------------
1 english some example
1 german an example
2 english test
2 german test123
像這樣顯示:
id english german
---------------------------------
1 some example an example
2 test test123
我嘗試使用pivot
但由於pivot
需要聚合函數,因此無法弄清楚如何正確處理它。
假設每種ID每種語言只有一個文本,則可以在pivot
的文本列上使用max
或min
。
select * from tablename
pivot
(max(text) for language in ('english' as ENGLISH,'german' as GERMAN))
編輯:基於OP的注釋,如果我不想在這種情況下選擇所有內容,則我很難弄清楚SELECT查詢的工作方式。 選擇某些東西,文本從表名或類似名稱不起作用
記住,您應該選擇所有要pivot
的列。
select * from
(select text,language,id,something from tablename) t
pivot
(max(text) for language in ('english' as ENGLISH,'german' as GERMAN))
編輯:取消unpivot
使用
select *
from (
select * from
(select text,language,id,something from tablename) t
pivot
(max(text) for language in ('english' as ENGLISH,'german' as GERMAN))
) p
unpivot (text for language in (ENGLISH, GERMAN))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.