⑴ 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 表