sql找出顺序中缺少的序号

来源:百度知道 编辑:UC知道 时间:2024/05/31 03:41:38
我有一个字段是1-10000这样顺序排列的,如果中间少了几个数,比如少了51,70,451,8005等等,我怎么用sql语句查询出来呢? 不是这些空的数字用null表示!就是没有跳过去了,我现在想把这些数找出来,怎么办啊?高手求救啊!
例如:我以一到10为例

字段名:paixu
1
3
5
8
9
10

我想把少了的2,4,6,7找出来该怎么办啊?高手们帮帮忙吧!谢谢各位了先!

sqlserver中的写法:
create table t_paixu (paixu int primary key(paixu))
go
insert into t_paixu values (1)
insert into t_paixu values (3)
insert into t_paixu values (5)
insert into t_paixu values (8)
insert into t_paixu values (9)
insert into t_paixu values (10)
go
declare @i int,@s varchar(8000)
select @i=1
select @s=''
while @i<=10
begin
if not exists (select * from t_paixu where paixu=@i)
select @s=@s+cast(@i as varchar(20))+','
select @i=@i+1
end
print substring(@s,1,len(@s)-1)

希望对你有所帮助

CREATE TABLE #Test
(
num INT PRIMARY KEY
)
INSERT #Test
SELECT 1
UNION ALL
SELECT 2
UNION ALL
SELECT 3
UNION ALL
SELECT 4
UNION ALL
SELECT 6
UNION ALL
SELECT 9

INSERT INTO #Test
SELECT MIN(TA.num+1)
FROM #Test AS TA
WHERE NOT EXISTS
(
SEL