簡體   English   中英

Oracle SQL-行到列

[英]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的文本列上使用maxmin

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM