Ⅰ 怎麼使sql表中不連續的編號重新變連續
要看你的目的是什麼,為什麼要這樣做。
1、如果純粹是為了顯示好看,可以在顯示時單獨1列輸出程序給的序號(永遠都是連續的),資料庫里的編號根本不用顯示它。
2、如果還需要使用這個編號作為參數,可以隱藏傳遞。
3、如果必須要顯示它,它還在別的表中有引用,那麼肯定不能隨便修改它。
4、如果沒表引用它,就是要它連續,也分為2種:a、新行使用編號2;b、345修改為234,新行使用5。如果是b,那麼這個欄位沒用,可以刪除了。
Ⅱ sql server 怎麼查到編號連續的數據
用條件啊 翻倍的 就power(2,n) n是2的n次方...
Ⅲ 求一個SQL語句,判斷批量數據是否連續
這個用group
select 戶號 from tableA group by 戶號 having count(戶號) != 人數
Ⅳ 求教,sql如何判斷數字的連續,並且獲取斷點的數字。
加入表是test,列名nums,可以先做如下處理:
select T1.nums as nums,
case (select COUNT(1) from TEST T2 WHERE T2.nums like '%'+convert(varchar(10),convert(int,SUBSTRING(T1.nums,len(T1.nums)-4,5))-1)) when 1 then (select T2.nums from TEST T2 WHERE T2.nums like '%'+convert(varchar(10),convert(int,SUBSTRING(T1.nums,len(T1.nums)-4,5))-1)) ELSE NULL END AS has_parent,
ROW_NUMBER() OVER(order by nums asc) as row_num
from TEST T1
得到一個關系數據,對數據做分組分析就Ok拉。
Ⅳ sql 資料庫如何在一個指定范圍內連續編號
自己編號了,先設置一個預設值在范圍內,然後+1,再判斷下,是否在范圍內
Ⅵ 怎麼查詢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中如何從一串數字中判斷是否連續比如1,2,4,5,7,8,9,10 。 我要提取連續數達到3個以上,怎麼寫
從資料庫取出來字元串後
用split截成數組,然後循環數組判斷
string s="1,2,4,5,7,8,9,10";
int c=0;
int a=0;
int[] ss=s.split(",");
for(int i=0;i{
int b=int.Parse(ss[i]);
if(i==0)
{
a=b;
}
else
{
if(c==4)
{
break;
//連續達到4個,跳出循環
}
a++;
if(a==b)
{
c++;
//符合繼續
}
else
{
break;//不符合
}
}
}
不知道你想要什麼過程
Ⅷ 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
Ⅹ sql 判斷兩行數據是否重復
需要所有列的值都拿來縱向判斷。一個簡單的方法是:
select count( distinct t.列1 [,t.列2,t.列3……] ) as cnt from t [where條件(指定哪幾行數據進行判斷) ]
如果結果值為1,則表示這幾行數據重復了。
其實就是distinct用來去掉重復的記錄,當所有列都distinct過濾之後,最終結果就只有一行數據了。