连续数中间断裂,求断裂处最小数

cassio 2010-10-07 11:10:53
数据库中存在以下记录
表A
A列(记录不重复,唯一)
1
2
3
4
9
10
11
12
15
16


想求出不连续数字开始的最小数字,答案为5
请高手给出解答,在线等
...全文
53 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2010-10-07
  • 打赏
  • 举报
回复
当前的序列号知道吧?如果知道 :

SELECT
*
FROM
TA a
where [序列号] = (select min([序列号]) from ta where [序列号] > 当前的序列号)

rucypli 2010-10-07
  • 打赏
  • 举报
回复
select min(工序)
from tb
where 工序 > 0010
cassio 2010-10-07
  • 打赏
  • 举报
回复
不好意思,可能是我表述的有问题
现有一张表,
序列号 工序 产品
1 0010 01
2 0020 01
5 0040 01
6 0050 01
7 0010 02
我是想求出 0010 工序 后面一道工序是什么。序列号和工序号都可能不连续,需要求出01产品0010工序号后,与0010相差最小的工序,应该是0020
fengxiaohan211 2010-10-07
  • 打赏
  • 举报
回复
楼上速度真快
-狙击手- 2010-10-07
  • 打赏
  • 举报
回复
------------------------------------------------------------------------
-- Author : HappyFlyStone
-- Date : 2010-10-07 11:12:21
-- Version: Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (Intel X86)
-- Mar 29 2009 10:27:29
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2)
--
------------------------------------------------------------------------

-- Test Data: ta
IF OBJECT_ID('[ta]') IS NOT NULL
DROP TABLE [ta]
Go
CREATE TABLE ta([col] INT)
Go
INSERT INTO ta
SELECT 1 UNION ALL
SELECT 2 UNION ALL
SELECT 3 UNION ALL
SELECT 4 UNION ALL
SELECT 9 UNION ALL
SELECT 10 UNION ALL
SELECT 11 UNION ALL
SELECT 12 UNION ALL
SELECT 15 UNION ALL
SELECT 16
GO
--Start
select min(col)+1
from ta a
where not exists(select 1 from ta where a.col = col -1)

--Result:
/*

-----------
5

(1 行受影响)

*/
--End

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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