现有两个表:表1(公共库),表2(私有库)
问题1.如何批量处理从公共库中选择一组ID字符串插入私有库中,注意在插入时、如果私有库中已存在“ID字符串”某一条记录时就不要在插入了
表1----结构如下(ID为自增)及记录(记录我是随便加的)
ID | Title
--------------
1 | 标题5
4 | 标题3
6 | 标题6
7 | 标题8
13 | 标题99
表2 -------结构如下(ID为表1 ID)
ID | Title
---------------
4 | 标题3
7 | 标题8
操作:如果我选择字表1的字符串为“1,4,7,13”插入到表2时,结果应为如下
ID | Title
---------------
4 | 标题3
7 | 标题8
1 | 标题5
13 | 标题99
我现在实现的语句是插入,但是如何来过滤掉重复值
INSERT INTO 表2 (ID,Title) SELECT ID,Title FROM [PublicProInfo]
select * from test
--循环插入相同地数据
declare @index int;
set @index = 0;
while(@index <= 5)
begin
insert test values(
'test','test')
set @index = @index + 1
end
--查询相同地数据的唯一标示id,分组查询最小id=distinct
select min(id) as id,name,pwd from test group by name,pwd
--删除id不在这个范围的数据
delete from test where id not in(select min(id) as id from test group by name,pwd)
INSERT INTO 表2 (ID,Title) SELECT ID,Title FROM [PublicProInfo] where id not in (select id from 表2)
如果是sql2008,可以用merge语法,这个比较简单。