SQL高手请进!
注意:用SQL实现!!!
有一个字段(Integer),要求找出一个最小且没有被使用的值。
问题点数:20、回复次数:15Top
1 楼gxh(我是一只菜菜菜菜鳥)回复于 2002-04-02 14:25:52 得分 0
select min(Field) as value from table
value=value-1Top
2 楼anxue(Roland)回复于 2002-04-02 14:47:19 得分 0
你是说你的Integer字段有很多离散的数据,要不断的填空么?Top
3 楼genphone_ru(哎,什么都要学,真累)回复于 2002-04-02 15:12:00 得分 0
什么叫最小且没有被使用呢?Top
4 楼gxh(我是一只菜菜菜菜鳥)回复于 2002-04-02 16:02:10 得分 0
如12,5,3,6,3,8,6,3,6,7,2
現在他要的數字就是1。最小的數是2,比2小的是1。是不是這樣?Top
5 楼lgxing(*)回复于 2002-04-02 16:27:42 得分 0
0,1,2,3,7,8,9中要4?
还是要-1?Top
6 楼webnumen(webnumen)回复于 2002-04-02 16:41:46 得分 0
没有被使用过是什么意思?Top
7 楼Geoson(快乐的浪子)回复于 2002-04-02 16:54:08 得分 0
select top 1 min(field) from table where field not in (select
field+1 from table) order by fieldTop
8 楼jinnee(Jinnee)回复于 2002-04-02 17:02:32 得分 0
不明白是什么意思。
Top
9 楼Geoson(快乐的浪子)回复于 2002-04-02 17:02:32 得分 0
错了,以前写过,忘了,要用到case 、not in 语句,有三层嵌套查询Top
10 楼Geoson(快乐的浪子)回复于 2002-04-02 17:06:27 得分 0
select min(a+1) from #tb where a+1 not in (select a from #tb) order by a
原理是这样的,但不能检测出最小的号不存在的情况,所以,还要用case语句,#tb是表名称,a是fieldTop
11 楼Geoson(快乐的浪子)回复于 2002-04-02 17:09:42 得分 0
加分,case语句没有,但也差不多有50分吧Top
12 楼amei2000go(浪子)回复于 2002-04-02 19:42:56 得分 0
不行哪!
服务器: 消息 8126,级别 16,状态 1,行 1
列名 'aa.id' 在 ORDER BY 子句中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
Top
13 楼Geoson(快乐的浪子)回复于 2002-04-03 13:38:31 得分 20
你的表名是不是aa,字段是id的话,请用:
select min(id+1) from aa where id+1 not in (select id from aa) order by id
Top
14 楼amei2000go(浪子)回复于 2002-04-04 11:54:55 得分 0
还是不行哪!
服务器: 消息 8126,级别 16,状态 1,行 1
列名 'aa.id' 在 ORDER BY 子句中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。
要不你自己试试。Top
15 楼amei2000go(浪子)回复于 2002-04-04 11:58:22 得分 0
select min(id+1) from aa where id+1 not in (select id from aa)
group by id
order by id
OK!Top




