免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: xamhd
打印 上一主题 下一主题

一家公司招聘考试题,oracle存储过程问题请教 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-02-17 08:45 |只看该作者

  1. break on Record_ID

  2. select 'Record '||vtab.num Record_ID, vtab.fld, vtab val from
  3. (
  4. (select rownum num,'a' fld, a val from tab)
  5. union
  6. (select rownum num,'b' fld, b val from tab)
  7. union
  8. (select rownum num,'c' fld, c val from tab)
  9. union
  10. (select rownum num,'d' fld, d val from tab)
  11. union
  12. (select rownum num,'e' fld, e val from tab)
  13. ) vtab
  14. order by num, val
复制代码

论坛徽章:
0
12 [报告]
发表于 2006-06-08 11:20 |只看该作者
使用 case when 可以处理,但是计算字段数值大小很麻烦啊(而且有局限)
本人很菜~~大家不要笑我的写法

eg:
select * from sort_t;

      COL1       COL2       COL3
---------- ---------- ----------
         1          3          2
         4          2          1
         4          7          1

select case when col1<col2 and col1<col3 then col1 When col2<col1 And col2<col3 Then col2 When col3<col1 And col3<col1 Then col3 End new_col1,
case when (col1<col2 and col1>col3) Or (col1>col2 and col1<col3) then col1 when (col2<col1 and col2>col3) Or ((col2>col1 and col2<col3) ) then col2 When (col3<col1 And Col3>col2) Or (col3>col1 And Col3<col2) Then col3 End new_col2,
case when col1>col2 and col1>col3 then col1 When col2>col1 And col2>col3 Then col2 When col3>col1 And col3>col1 Then col3 End new_col3
from sort_t;

  NEW_COL1   NEW_COL2   NEW_COL3
---------- ---------- ----------
         1          2          3
         1          2          4
         1          4          7

论坛徽章:
0
13 [报告]
发表于 2006-06-08 13:23 |只看该作者
我会create一个function ,


  1. Create or replace function pos(a number , b number , c number ,
  2. d number , e number , pos number)
  3. return number
  4. as
  5. ret number ;
  6. begin
  7. select v into ret from
  8. (select v , rownum as r from
  9. (select a as v from dual
  10. union all
  11. select b from dual
  12. union all
  13. select c from dual
  14. union all
  15. select d from dual
  16. union all
  17. select e from dual
  18. order by 1
  19. )
  20. )where r = pos ;
  21. return ret;
  22. end;
  23. /
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP