當前位置:首頁 » 編程語言 » 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()函數 新產生一列連續編號,再更新回去