高分求助:一个SQL文的写法,谢谢!

Iris 2005-10-31 10:17:49
我想得到一个表中可以利用的最小的学号列的值。
表A中学号列是PK,varchar2(4),现在表中存在学号为0001,0002,0003,0005,0006,0008,。。。。的记录。
就是说0004号和0007号都是可以利用的学号,我现在想select出0004这个号,应该怎么做呢,谢谢。
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kinlin 2005-11-01
  • 打赏
  • 举报
回复
select to_char(a.学号+1,'0000')
from
(
select to_number(t.学号) 学号, to_number(lead(学号, 1, 0) OVER(ORDER BY 学号)) as ff from aaa t
) a
where
a.学号 != a.ff-1
and rownum=1
angel_yang 2005-11-01
  • 打赏
  • 举报
回复
select * from (
select to_number(pk) from table where 条件 order by to_number(pk))
where rownum=1;
xjqqxjqq 2005-11-01
  • 打赏
  • 举报
回复
select b.rn from (SELECT LTRIM(TO_CHAR(ROWNUM,'0000') rn) from a) b,a where b.rn<>a.pk
hxfjb 2005-10-31
  • 打赏
  • 举报
回复
我也遇到过这样的问题,学习中......
waterfirer 2005-10-31
  • 打赏
  • 举报
回复
select to_char(max(to_number(学号))+1,'0000') from (select 学号,to_number(学号)-rownum t from a order by 学号) where t=0
qiaozhiwei 2005-10-31
  • 打赏
  • 举报
回复
试试这个:
SELECT B.ID
FROM (
SELECT LTRIM(TO_CHAR(ROWNUM,'0000')) AS ID,A.PK
FROM(
SELECT PK FROM TABLE ORDER BY PK) A
) B
WHERE B.ID <> B.PK AND ROWNUM = 1

zzwind5 2005-10-31
  • 打赏
  • 举报
回复
不明白,是不是要找出按顺序下来空缺的号码?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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