ORACLE对字段进行排序

s198127 2006-03-06 06:54:33
如何对列的数据进行排序
例如有表TABLE_TEST
id count_1 count_2 count_3 count_4 count_5
1 5 6 1 2 4
2 4 7 1 5 9
...............................
如何才能得到数据
id count_1 count_2 count_3 count_4 count_5
1 1 2 4 5 6
2 1 4 5 7 9

能不能不使用循环对每天单独提取出来进行处理
因为数据量可能会上千万...

有好的意见或者建议请不吝留言..
不省感激
...全文
286 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
alonepb 2006-03-09
  • 打赏
  • 举报
回复
来顶一下
MountLion 2006-03-08
  • 打赏
  • 举报
回复
实在想不出这样的处理有什么用
s198127 2006-03-08
  • 打赏
  • 举报
回复
另外对于这种方式的语句,在同一行数据中不存在重复记录到能实现,
但我加入一条有重复数据的记录:
1 1 5 6 1 2 4
2 2 4 7 1 5 9
3 3 5 1 4 5 9
结果就变为了:
1 1 1 2 4 5 6
2 2 1 4 5 7 9
3 3 1 4 0 5 9
也就是说在同一行数据中遇到重复数据就会出错.
s198127 2006-03-07
  • 打赏
  • 举报
回复
多谢谢指教
least()
greatest()
这两个函数我还没用过.学习一下,
再等等看有没其他高人再指教一下
cenlmmx 2006-03-06
  • 打赏
  • 举报
回复
SQL> select * from test;

ID T1 T2 T3 T4 T5
---------- ---------- ---------- ---------- ---------- ----------
1 5 6 1 2 4
2 4 7 1 5 9

SQL>
SQL> select id,r1,r2,
2 greatest(decode(t1,r1,0,r2,0,r4,0,r5,0,t1),
3 decode(t2,r1,0,r2,0,r4,0,r5,0,t2),
4 decode(t3,r1,0,r2,0,r4,0,r5,0,t3),
5 decode(t4,r1,0,r2,0,r4,0,r5,0,t4),
6 decode(t5,r1,0,r2,0,r4,0,r5,0,t5)) r3
7 ,r4,r5
8 from (
9 select id,r1,least(decode(t1,r1,999,r5,999,t1),decode(t2,r1,999,r5,999,t2),decode(t3,r1,999,r5,999,t3),decode(t4,r1,999,r5,999,t4),decode(t5,r1,999,r5,999,t5)) r2,
10 greatest(decode(t1,r1,0,r5,0,t1),decode(t2,r1,0,r5,0,t2),decode(t3,r1,0,r5,0,t3),decode(t4,r1,0,r5,0,t4),decode(t5,r1,0,r5,0,t5)) r4,r5,t1,t2,t3,t4,t5
11 from (
12 select least(t1,t2,t3,t4,t5) r1,greatest(t1,t2,t3,t4,t5) r5,id,t1,t2,t3,t4,t5 from test
13 ))
14 /

ID R1 R2 R3 R4 R5
---------- ---------- ---------- ---------- ---------- ----------
1 1 2 4 5 6
2 1 4 5 7 9

呵呵,没办法写了个很苯的sql,千万别这样.权当练手.

3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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