我在一個表report里面有一些記錄

rifnxa 2004-05-01 08:53:50
我在一個表report里面有一些記錄
字段:a,b,c,d,e
我想更新表中的一些記錄
當d,e字段為空時,我想用表中的其它不為空的記錄填充
條件是填充的記錄的b,c字段与被填充記錄的b,c字段相等.
再就是符合填充條件的記錄有可能有多條.
不知怎樣寫請指教.
...全文
17 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
internetcsdn 2004-05-01
--再加一条记录测试.
create table t1 (aa varchar(10),bb varchar(10))
insert t1
select '10','100'
union all select '10',''
union all select '10','300'
union all select '20','200'
union all select '20',''

select * from t1



create function get_bb(@aa varchar(10))
returns varchar(10)
as
begin
declare @re varchar(10)
select @re=
--select top 1
bb from t1 where bb<>'' and aa=@aa
return @re
end

update t1
set bb=dbo.get_bb(aa)
where bb=''

select * from t1

--
drop table t1

drop function get_bb
/**
更新前
aa bb
---------
10 100
10
10 300
20 200
20

更新后
aa bb
---------
10 100
10 300
10 300
20 200
20 200



**/
  • 打赏
  • 举报
回复
internetcsdn 2004-05-01
try
--当空值为''

create table t1 (aa varchar(10),bb varchar(10))
insert t1
select '10','100'
union all select '10',''
union all select '10','300'
union all select '20','200'

select * from t1

drop table t1

create function get_bb(@aa varchar(10))
returns varchar(10)
as
begin
declare @re varchar(10)
select @re=
--select top 1
bb from t1 where bb<>'' and aa=@aa
return @re
end

update t1
set bb=dbo.get_bb(aa)
where bb=''

--
drop table t1

drop function get_bb
  • 打赏
  • 举报
回复
internetcsdn 2004-05-01
楼主的意思是以相同字段不同记录的值来UPDATE
set d=b,e=b
是不同字段的值了,
这不对吧
  • 打赏
  • 举报
回复
homeness 2004-05-01
以上只适合单一记录

如果是多条记录,应该还有其他条件吧
  • 打赏
  • 举报
回复
internetcsdn 2004-05-01
如果是"再就是符合填充條件的記錄有可能有多條"
又怎样处理啊?








  • 打赏
  • 举报
回复
homeness 2004-05-01
update report
set d=b,e=b
where d is null and e is null
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2004-05-01 08:53
社区公告
暂无公告