首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

卖身求答案,一个缺号分析的有关问题-一,跪式答谢

2013-01-20 
卖身求答案,----------一个缺号分析的问题----------一,跪式答谢SERIALNUMBER33114536372以上为SERIALNUMB

卖身求答案,----------一个缺号分析的问题----------一,跪式答谢
SERIALNUMBER
33
11
4
5
36
37
2

以上为SERIALNUMBER这个字段的数据。
给一个范围,例如1-50,想求出中间缺少的号,缺号:1、3、6、7、8........
只剩35分了,分少情意重嘛,再次感谢各位了。 Oraclesql??for?缺号 Oracle for sql 缺号分析
[解决办法]


with t(SERIALNUMBER) as
(
select 33 from dual 
union all select 11 from dual
union all select 4 from dual
union all select 5 from dual
union all select 36 from dual
union all select 37 from dual
union all select 2 from dual
)
select r from (select rownum r from dual connect by rownum<51) t1
where not exists(select 1 from t where t.SERIALNUMBER=t1.r)
order by r;
--如果不是範圍從1開始,在where後加限定r的範圍,t1限定到最大就可以了

[解决办法]
从来没用过connect by...不过这个函数很好的实现了SQL循环.我贴一个PL/SQL的吧。。。
DECLARE
o_s NUMBER;
BEGIN
FOR i IN 1..50 LOOP
select COUNT(*) INTO  o_s from test_20130115 WHERE serialno = i;
IF o_s =0 THEN 
dbms_output.put_line(i);
END IF;
END LOOP;
END;

热点排行