收录日期:2019/02/16 20:13:34 时间: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 行)
--*/

我想用c#桌面程序和c#三层结构的oa和网友交换c#三层结构的全站程序学习 一个关于jdom读取xml文件的中文问题 这是什么异常?? 如何开发Windows平台下的usbdnet help: 硬盘分区不小心格式化后数据用什么工具恢复??? 求教内存释放问题,急问 根据什么来配置web.config中连接池容量的大小,连接池的大小对应用程序的性能有何影响? [没什么分了,但是我想高手不是为了分而回答问题的]【关于容器】 hshgxm(呵本)进来领分. 高分急求打印组件 如何读取一个图片,文档,mp3文件的内容,将其存成sql数据库中的OLE类型对象,然后再将其从sql中读出来恢复成文件,将他们显示出来!解决\0 用installshield 编程时怎样才能可以获取当前的路径名(setup.exe的路径名)? unknown character \'0xa1\'这是什么错误?我竟然有100多个这样的错误! 为什么这么简单的程序显示不出来结果呢? 请问目前华为发短消息通知面试的是慧通嘛? spring中如何对两个数据源同时进行事务管理 华为面试的内部推荐是什么意思? 紧急请教!!WWW,HTTP和HTML的定义! 急问:关于数据转换溢出的问题 请问各位,杀毒软件是不是一定得花钱买正版?(盗版无法升级?) 如何在类中调用其他文件中的全局函数 求救!急! 一个很小的程序,我用MYSQL能运行,而MSSQL却不能,能说说我错在哪里了,怎样解决啊? 真实新闻-------记者暗访揭开变质光明牛奶返厂加工再销售黑幕 明天就要答辩了,急问两个小问题,再线等 进程通信PostThreadMessage和getMessage带参数,如何使用?在线等待 有关eclipse3.0.2+cdt2.1.1+mingw编译C++时遇到的问题 http的parameter tomcat5中server.xml里面设置了URIEncoding=\"utf-8\"后,通过url传递的参数中,中文值如何取? 哪里有袁飞的web打印控件下载?