收录日期:2019/05/22 09:20:42 时间:2016/05/27 12:53:24 标签:基础类
Fid  Fname
1    A
2    B
3    C
6    F

现在要求补全Fid 即
Fid   Fname
1      A
2      B
3      C
4   
5
6      F
--直接补,这样的方式,Fid的值最大从0~10000
select Fid=b.id,Fname=isnull(Fname,'')
from 表 a right join(
select id=a.id+b.id+c.id+d.id+1
from(
select id=0 union all select 1
union all select id=2 union all select 3
union all select id=4 union all select 5
union all select id=6 union all select 7
union all select id=8 union all select 9
) a,(
select id=0 union all select 10
union all select id=20 union all select 30
union all select id=40 union all select 50
union all select id=60 union all select 70
union all select id=80 union all select 90
) b,(
select id=0 union all select 100
union all select id=200 union all select 300
union all select id=400 union all select 500
union all select id=600 union all select 700
union all select id=800 union all select 900
) c,(
select id=0 union all select 1000
union all select id=2000 union all select 3000
union all select id=4000 union all select 5000
union all select id=6000 union all select 7000
union all select id=8000 union all select 9000
) d
)b on a.fid=b.id
where b.id<=(select max(fid) from 表)
order by b.id
--测试

--测试数据
create table 表(Fid int,Fname varchar(10))
insert 表 select 1,'A'
union all select 2,'B'
union all select 3,'C'
union all select 6,'F'
go

--查询
select Fid=b.id,Fname=isnull(Fname,'')
from 表 a right join(
select id=a.id+b.id+c.id+d.id+1
from(
select id=0 union all select 1
union all select id=2 union all select 3
union all select id=4 union all select 5
union all select id=6 union all select 7
union all select id=8 union all select 9
) a,(
select id=0 union all select 10
union all select id=20 union all select 30
union all select id=40 union all select 50
union all select id=60 union all select 70
union all select id=80 union all select 90
) b,(
select id=0 union all select 100
union all select id=200 union all select 300
union all select id=400 union all select 500
union all select id=600 union all select 700
union all select id=800 union all select 900
) c,(
select id=0 union all select 1000
union all select id=2000 union all select 3000
union all select id=4000 union all select 5000
union all select id=6000 union all select 7000
union all select id=8000 union all select 9000
) d
)b on a.fid=b.id
where b.id<=(select max(fid) from 表)
order by b.id
go

--删除测试
drop table 表

/*--测试结果
Fid         Fname      
----------- ---------- 
1           A
2           B
3           C
4           
5           
6           F

(所影响的行数为 6 行)
--*/
--用临时表的方法,Fid的值不受限制
declare @i int
select @i=max(Fid) from 表
set rowcount @i
select id=identity(int,1,1),a=0 into #t from syscolumns
set @i=@i-@@rowcount
while @i>0
begin
set rowcount @i
insert #t select 0 from syscolumns
set @i=@i-@@rowcount
end

select Fid=b.id,Fname=isnull(Fname,'')
from 表 a right join #t b on a.fid=b.id
where b.id<=(select max(fid) from 表)
order by b.id
--测试

--测试数据
create table 表(Fid int,Fname varchar(10))
insert 表 select 1,'A'
union all select 2,'B'
union all select 3,'C'
union all select 6,'F'
go

--用临时表的方法,Fid的值不受限制
declare @i int
select @i=max(Fid) from 表
set rowcount @i
select id=identity(int,1,1),a=0 into #t from syscolumns
set @i=@i-@@rowcount
while @i>0
begin
set rowcount @i
insert #t select 0 from syscolumns
set @i=@i-@@rowcount
end

select Fid=b.id,Fname=isnull(Fname,'')
from 表 a right join #t b on a.fid=b.id
where b.id<=(select max(fid) from 表)
order by b.id
go

--删除测试
drop table 表

/*--测试结果
Fid         Fname      
----------- ---------- 
1           A
2           B
3           C
4           
5           
6           F

(所影响的行数为 6 行)
--*/

有个问题的问题,大家来看看,有人知道否? 学习VC主要用在哪些方面? 日期时间相加减问题 mpeg2 解码显示的一个问题。想不通,不知道什么问题????!!!! 我用 DataSet ds = new ..ds.ReadXml( sXml );读后表中却不显示正确的记录集,例如我取第一个字段数据: 狗日的那个足球评伦员,叫什么黄健翔还是宋世雄来着,一块来骂吧 请问:mpeg-1是如何存储的? 为什么统计总是少统计一天?总是少统计月末的一天。 报表问题? 我在用ImageList的时候,放进的去16*16的图标有时候不显示,都是灰色的,怎么回事(vb6中文版) 一个小问题,出错不知何处,请帮忙~? 我用 DataSet ds = new ..ds.ReadXml( sXml );读后表中却不显示正确的记录集,例如我取第一个字段数据:: 谁能解决这个问题:\"参数不足,期待是1.\"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 急聘网络开发工程师,月薪3000左右,本信息有效期只此一天! 用asp做一个电子商务网站,可以收人家多少钱呀! 关于基本控件的使用! 我做门禁系统,该看哪一方面的书 50分 Datagrid的某一模板列失去焦点时,另一模板列能根据其数值变化而变化。 请问:mpeg-1是如何存储的? 一个简单的问题,给分 求助! 高分求购:xml的分页程序 一个简单的问题,非常简单,请答复 push技术与websnap 怎么让控件的背景变成透明的 该怎样做网络视频实时传输啊?我急!急!急! 请教如何在excel中更新记录?谢谢!我用的是 Set ExcelApp = CreateObject(\"Excel.Application\") javascript语句怎么写? 数据库方面,我该看什么书 50 分 奉送!!!!! c中关于switch语句的问题。