关于行变成列语句

qinfujun 2010-09-02 05:55:36
例如 :
字段名 a b xh
1 上 1
2 中 5
3 下 3
2 左 4

通过语句想变成
1 2 3
上 左 下
(null)中(null)

根据xh排序,然后a字段值不确定,可能还有4,也可能没有3
请教各位大大
另如果没有xh,不用排序又该怎么写呢?
...全文
108 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
robin_ares 2010-09-02
  • 打赏
  • 举报
回复

with t as(
select 1 a, '上' b, 1 c from dual
union
select 2 a, '中' b, 5 c from dual
union
select 3 a, '下' b, 3 c from dual
union
select 2 a, '左' b, 4 c from dual
)

select max(decode(a,1,b,null)) "1",
max( decode(a,2,b,null)) "2",
max(decode(a,3,b,null)) "3"
from(
select row_number() over(partition by a order by c) rm
,t.*
from t
)
group by rm

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧