【问题标题】:How to achieve pivot output in OracleOracle中如何实现pivot输出
【发布时间】:2016-09-13 16:09:00
【问题描述】:

来源如下:

NAME |SEX
-----+----
A    |MALE
B    |FEMALE
C    |MALE
D    |FEMALE
E    |MALE

必需的输出,将第二列中的值作为标题,如下所示:

MALE FEMALE
A     B
C     D
E

【问题讨论】:

  • 这个问题表明您完全缺乏努力和研究。
  • 你能详细说明一下吗?
  • 因此,如果您的源中有 3 位男性和 2 位女性,您是否希望在输出中 MALE 列中有 3 个数据项,FEMALE 列中有 2 个数据项?
  • @MarkStewart 是的,如果我有 3 个男性,那么它应该在男性列中显示 3 个男性,在女性列中显示为空
  • 什么版本的Oracle?

标签: sql oracle oracle11g pivot-table


【解决方案1】:

对于甲骨文:

select * from (
select * from [table name]
)src 
pivot
(max(name) for sex in ('Male' as MALE,'Female' as FEMALE))pvt

对于 SQL Server:

select * from (
select * from [table name]
)src 
pivot
(max(name) for sex in ([Male],[Female]))pvt

【讨论】:

  • 已经通过 pivot 尝试过,但它返回最后一组数据 Male - C Female D --- select * from src pivot (max(name) for sex in ('MALE','FEMALE' ));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2019-09-28
  • 2017-10-20
相关资源
最近更新 更多