create table #sample (rowguid int identity ,id_frm int ,id_to int)
insert into #sample values(1,5)
insert into #sample values(7,13)
insert into #sample values(17,20)
在上面的表格中,我有开始Id和结束Id的值。我需要准备一个表,其中包含所有数字落在起始标识和结束标识之间需要群组和岛屿的T-SQL查询
我已经尝试了循环,但响应在现实世界中非常缓慢。
任何机构帮我查询?
这是我到目前为止已经试过......
declare @sql varchar(8000) = '
select top '+cast((select max(id_to) from #sample) as varchar(100))+' identity(int,1,1) as guidid into tally from sysobjects,syscolumns '
exec (@sql)
alter table Tally add slab varchar(10)
create clustered index idx on Tally(guidid)
create clustered index idx on #sample(id_frm asc,id_to desc)
update Tally set slab = rowguid
from #sample join Tally on guidid between id_frm and id_to
delete from Tally where slab is null
select * from Tally
此查询工作正常与小数字
但我真正的时间表,有13个数字编号。它通过算术溢出错误
当然..我已经尝试过循环,但它不会帮助我......在性能方面落后。 – vignesh
请你可以举一个你预期的表格的例子吗? – sarin
请用您尝试过的查询更新您的问题。 – Kermit