当前位置:首页 » 编程语言 » sql查序号不重号不断号
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查序号不重号不断号

发布时间: 2022-10-22 19:27:31

sql语句如何查询一些符合不重复不顺号的记录集的数据呢例如:查询编号字段="13666,1555,11000……"

select *
from table
where 字段 in (13665,1555,11000,...);

⑵ 怎么查询SQL中连续编号中间的断号

思路给你:

1、找到你的表中的连续编号的最小值。

2、找到你的表中的连续编号的最大值。

3、产生一个临时表,它的一个字段最小值到最大值连续产生记录。

4、找到临时表中的“那个字段中”的“记录”不在“你的表中”的“连续编号”中存在的所有记录。


参考代码如下:

--初参条件针对对象表LS_bas1数据库里的TA1表
--查TA1表中ID号不连续缺少的记录

--定义三个变量最小记录、最大记录、记录搜索用
DECLARE@MINIDINT,@MAXIDINT,@GOINTINT

--从TA1表中取得ID最小的、ID最大的记录
SELECT@MINID=MIN(ID),@MAXID=MAX(ID)FROMLS_bas1.DBO.TA1

--从最小记录开始循环向临时表#LSTAB里追加记录,以产生连续的GOID记录
SET@GOINT=@MINID
SELECT@GOINTASGOIDINTO#LSTAB
WHILE@GOINT<@MAXIDBEGIN
SET@GOINT=@GOINT+1
INSERTINTO#LSTAB(GOID)VALUES(@GOINT)
END

--将#LSTAB中GOID有,与TA1表ID中没有的记录找出来,就是你要的
SELECT*FROM#LSTAB
WHEREGOIDNOTIN(
SELECTIDFROMLS_bas1.DBO.TA1
)
ORDERBYGOID

--最后,好习惯,清理中间的临时表
DROPTABLE#LSTAB

⑶ SQL同一字段数据相同按顺序编号,不相同的从头开始

B2输入

=IF(A2<>A1,1,B1+1)

下拉

⑷ 如何用SQL 来核查序号是否连续

给你提供一个参考:
declare @num1 int,@num2 int,@i int,@row int
select @row=count(*) from 表名
set @i=1
while(@i<=@row)
begin
select @num1=序号 from 表名 where 序号=@i
select @num2=序号 from 表名 where 序号=@i+1
if(@num2-@num1<>1)
begin
print(cast(@num1 as char)+' 与 '+cast(@num2 as char)+'不连续');
break;
end
set @i=@i+1
end

⑸ 怎么使SQL表中不连续的编号重新变连续

要看你的目的是什么,为什么要这样做。
1、如果纯粹是为了显示好看,可以在显示时单独1列输出程序给的序号(永远都是连续的),数据库里的编号根本不用显示它。
2、如果还需要使用这个编号作为参数,可以隐藏传递。
3、如果必须要显示它,它还在别的表中有引用,那么肯定不能随便修改它。
4、如果没表引用它,就是要它连续,也分为2种:a、新行使用编号2;b、345修改为234,新行使用5。如果是b,那么这个字段没用,可以删除了。

⑹ SQL中序号连续的问题

你想要连续只能把这个表删了,再建一个了,递增就是这样,只要一条记录有了,ID有就了,没了ID就没了。就这样,不管你删多少记录,再加还是接着递增的。

⑺ 如何用sql语句查询断号

经过努力,解决了这个问题(此前,绝大多数的方法都是生成一个从最小直到最大值的连续序列过渡表,然后两表关联或利用子查询,查处源表中不存在的值),该方法比较简单也比较巧妙,思路如此:
断号的含义也就是不在源表中的号,但断号肯定是源表中的某个号码加上一个数得到的,也就是说,我第一步需要找到源表中的每一个值加1后(取名为f1)不存在源表序列中的值,然后以此为基础,在源表中找大于f1的最小值(取名f2),那么从f1到f2的值即为断号值,到此解决!!

语句如下(绝对原创):

SELECT f1, (select min(f)-1 from t where f>f1) as f2
FROM
(SELECT f+1 AS f1
FROM t
WHERE f+1 not in (select f from t) and f <(select max(f) from t)
) AS cc;

结果如下:
f1 f2
6 6
10 13

徐州 吴艳山

⑻ 查询出一个表中所有具有重复序号的SQL语句

.使用临时表实现
sql的identity函数可以提供自增的序号,但只能用在带有into
table子句的select语句中,所以如果可以使用临时表的情况下可以使用这种实现方法。
eg:
select
identity(int,1,1)
as
seq,field1,field2,...,fieldn
into
tmptablename
from
srctablename;
select
*
from
tmptablename;
drop
table
tmptablename;

⑼ SQL 查询不连续的号码,按号码段分段显示,并统计分段数量。

declare@AAtable(yearsint,numberint)
insertinto@AAvalues(2014,45201521)
insertinto@AAvalues(2014,45201522)
insertinto@AAvalues(2014,45201523)
insertinto@AAvalues(2014,45201524)
insertinto@AAvalues(2014,45201525)
insertinto@AAvalues(2014,45201526)
insertinto@AAvalues(2014,45201527)
insertinto@AAvalues(2014,45201528)
insertinto@AAvalues(2014,45201532)
insertinto@AAvalues(2014,45201535)
insertinto@AAvalues(2014,45201536)
insertinto@AAvalues(2013,45070121)
insertinto@AAvalues(2013,45070122)
insertinto@AAvalues(2011,45010022)
insertinto@AAvalues(2011,45010023)
insertinto@AAvalues(2012,48038811)
insertinto@AAvalues(2012,48038815)

select年份,casewhenstart_num!=end_numthenconvert(varchar(20),start_num)+'-'+convert(varchar(20),end_num)elseconvert(varchar(20),start_num)endas票段号,份数from(
selectyears年份,min(number)asstart_num,max(number)asend_num,COUNT(years)as份数
from
(selectyears,number,number-ROW_NUMBER()over(orderbynumber)asgrp
from@AA)m
groupbygrp,years)t

orderby年份,票段号asc

⑽ 怎么使SQL表中不连续的编号重新变连续

用的是什么数据库?我知道sql server 2005及以上版本可以用ROW_NUMBER()函数 新产生一列连续编号,再更新回去