再讨论如何把上面的a行对应的数据更新到b行?
create table Test
(Co1 varchar(5),
co2 varchar(10)
)
GO
insert into test (Co1,co2) values( 'a ' , 'xyz ')
insert into test (Co1,co2) values( 'b ' , 'm ')
insert into test (Co1,co2) values( 'b ' , 'n ')
insert into test (Co1,co2) values( 'b ' , 'y ')
insert into test (Co1,co2) values( 'a ' , 'lpg ')
insert into test (Co1,co2)values( 'b ' , 'u ')
insert into test (Co1,co2) Values( 'b ' , 'f ')
---如何把上面的a行对应的数据更新到b行?
--- wgzaaa (95)、的方法:
declare @A varchar(10)
set @A= ' '
update test set co1=(case when co1= 'a ' then co1 else @A end),
@A=(case when co1= 'a ' then co2 else @A end)
go
select * from test
a xyz
xyz m
xyz n
xyz y
a lpg
lpg u
lpg f
如果数据改一改
delete from Test
go
insert into test (Co1,co2) values( 'b ' , 'm ')
insert into test (Co1,co2) values( 'b ' , 'n ')
insert into test (Co1,co2) values( 'b ' , 'y ')
insert into test (Co1,co2) values( 'a ' , 'lpg ')
insert into test (Co1,co2)values( 'b ' , 'u ')
insert into test (Co1,co2) Values( 'b ' , 'f ')
如何得到?
可以加一列identity,最好是select 出来的别的方法。
xyz m
xyz n
xyz y
a lpg
lpg u
lpg f
------解决方案--------------------请问,当数据如下:
b m
b n
b y
a lpg
b u
b f
楼主希望得到怎样的结果?
------解决方案--------------------select id=identity(int),* into #1 from test
select [co1]=case when co1= 'b ' then
(select top 1 co2 from #1 where co1= 'a ' and id <a.id