日期:2014-05-19  浏览次数:20507 次

同表数据复制
各位好

有一个问题请教大家,该如何写SQL语句

一,我想知道如何写SQL语句把下面的数据复制一遍同时把字段cc变成2,在同一个表里


表table1

字段aa(自动增长),字段bb,字段cc
1,aaaa,1
2,bbbb,1
3,cccc,1


复制成:
1,aaaa,1
2,bbbb,1
3,cccc,1
4,aaaa,2
5,bbbb,2
6,cccc,2

二,如果数据已经存在就只复制不同的

如:原来

1,aaaa,1
2,bbbb,1
3,cccc,1
4,dddd,   1
5,aaaa,2
6,bbbb,2

复制成:
1,aaaa,1
2,bbbb,1
3,cccc,1
4,dddd,1
5,aaaa,2
6,bbbb,2
7,cccc,2
8,dddd,2



------解决方案--------------------
create table #(a int identity(1,1),b varchar(20),c int)
insert into #
select 'aaaa ',1 union all
select 'bbbb ',1 union all
select 'cccc ',1 union all
select 'aaaa ',2 union all
select 'bbbb ',2


select * from #
insert into # (b,c)
select b,2 from # a where not exists(select 1 from # where b=a.b and c=2)