⑴ sql語句在空表中如何寫入連續的編號
你看了沒有sql 跟oracle是有區別的,那你有沒有用第一個,你用的明明是sql server資料庫卻偏偏要用oracle的語法怎麼能不錯
sql server 資料庫用如下:
declare @no varchar(11),@i int ,@n varchar(10)
set @i= 1
while @i<5001
begin
set @no = 'LSK' +right( 100000000+@i,8)
insert into a (a1) values(@no)
set @i=@i+1
end
oracle 資料庫用如下:
declare no varchar2(11);
begin
for i in 1..5000 loop
no:= 'LSK'||substr(100000000+i,-8,8);
insert into a (a1) values(no);
end loop;
end;
⑵ 怎麼查詢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 server2008 批量生成從指定值開始的連續的序號
將貨品ID設置為標識符,若需要設為標識符你需要將貨品ID列欄位設置為int型,我這里是用的2005版本的,大致操作方法一樣,選中【貨品ID】屬性列,在下方的列屬性窗口中將標識規范展開,將【是標識】選擇是,在標識種子中改為10(表示從10開始).
參考圖片:
⑷ 如何將SQL表中不連續編號重寫為連續編號
在緩存狀態下重新生成標識列
SET IDENTITY_INSERT Table1 ON
DECLARE @i int
Set @i = 0
Update 表1 Set @i = @i + 1,列1 = 'SPH'+right('00000000'+convert(varchar(8),@i),8)
SET IDENTITY_INSERT Table1 OFF
⑸ 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資料庫自動編號(連續)
假如你的原來的表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中如何給編號重新排一次編號
將數據導出表(除了編號列)
用
truncate table 表名字
再將數據全部導入
ps:為了避免操作錯誤,做之前先把表備份一下
⑻ sql 資料庫如何在一個指定范圍內連續編號
自己編號了,先設置一個預設值在范圍內,然後+1,再判斷下,是否在范圍內
⑼ 怎麼使SQL表中不連續的編號重新變連續
用的是什麼資料庫?我知道sql server 2005及以上版本可以用ROW_NUMBER()函數 新產生一列連續編號,再更新回去
⑽ 求sql語句按連續編號分組
求sql語句按連續編號分組
sqlserver2005及以上版本 SELECT ROW_NUMBER() OVER(PARTITION BY 種類 ORDER BY 種類) AS 序號,* FROM 表