當前位置:首頁 » 編程語言 » sql識別連續編號
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql識別連續編號

發布時間: 2023-08-12 12:47:04

『壹』 sql篩選日期連續的記錄

select empid as 員工編號,workdate as 曠工日期一,dateadd(day,1,workdate) as 曠工日期二 from table t1
where
exists
(select * from table where empid=t1.empid and datediff(day,t1.workdate,workdate)=1)
and not exists
(select * from table where empid=t1.empid and datediff(day,t1.workdate,workdate)=2)
and not exists
(select * from table where empid=t1.empid and datediff(day,t1.workdate,workdate)=-1)
存在大一天的數,但不存在大兩天的數,也不存在小一天的數,就是正確結果了

『貳』 sql server 怎麼查到編號連續的數據

用條件啊 翻倍的 就power(2,n) n是2的n次方...

『叄』 sql 連續編號

因為你的欄位全敬喚或是數字,所以可以用max()函數來取最鏈跡大值,然後轉為int,加1,再轉為亮伍char(6). 如果你覺得6位太長,可以把下面代碼中的6改稱你要的長度。

先創建一個自定義函數:
create function f_getMaxCode()
returns varchar(6)
as
begin
declare @maxid int
declare @maxcode varchar(6)
set @maxcode=''
select @maxid=Cast(isnull(max(bh欄位名),0)+1 as int) from 表名
set @maxcode=cast(@maxid as varchar(6))
while len(@maxcode)<6
begin
set @maxcode='0' + @maxcode
end
return @maxcode
end

在insert的時候:
insert into 表名(bh欄位名,....)
values(dbo.f_getMaxCode(),....)

『肆』 sql怎麼批量查詢多個編號對應的數據

兩個辦法: 1.新建一張表 將這行bh列需要的數據 插入進去
2.用in(bh1,bh2,bh3,,......)

另外 你要顯示查找不到的 我就建議 你用第一種方法 然後再用left join 用這列bh去連接
這樣找不到的bh 就會顯示null

『伍』 查詢出一個表中所有具有重復序號的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中連續編號中間的斷號

思路給你:

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資料庫自動編號(連續)

假如你的原來的表tb有
id,name,address三列
其中id是自動增長列,
刪除其中若干行以後,
你可以這樣啊
創建存儲過程
create proc getTempTable
as
begin
declare @temp table
(
id int identity(1,1),
name varchar(20),
address varchar(20)
)
insert @temp
select name, address from tb

select * from @temp
end
這樣你就可以得到一個ID連續的新表了

『捌』 SQL資料庫中查詢連續編號的的數據。


DECLARE@T1table(UserIDint,[name]nvarchar(50),numint);
insertinto@T1(UserID,[name],num)values(1001,'a',8)
insertinto@T1(UserID,[name],num)values(1002,'b',6)
insertinto@T1(UserID,[name],num)values(1003,'c',8)
insertinto@T1(UserID,[name],num)values(1004,'a',8)
insertinto@T1(UserID,[name],num)values(1005,'b',8)

select*from@t1
selecta.*from
(selectUserID,[name],[num]from@t1)ajoin
(selectUserID,[name],[num]from@t1)bona.UserID<b.UserIDanda.UserID+1=b.UserID
anda.num=b.num
groupbya.userid,a.[name],a.[num]


得到結果:1003c8
1004a8