日期:2014-05-17  浏览次数:20453 次

2个表处理的问题
请帮忙看看:

一、有2个表,
表1:MainTable (现有记录数在10万条左右)
字段:
id  bigint自动编号
Title nvarchar(30)
SubId nvarchar(max)

表MainTable:
Id Title SubId
1  A       0
2  B       0
3  C       0
4  D       0
5  E       0
6  F       0

表2:SubTable (现有记录数在300万条左右)
字段:
id bigint自动编号
Description nvarchar(100)
Fl int '默认值为0,当进行模糊匹配后,值改为1

表SubTable:
Id Description Fl
1  ABC         0
2  AB          0
3  CD          0
4  EA          0

二、需要实现的结果为:
表MainTable:
Id Title SubId
1  A     0,1,2,4
2  B     0,1,2
3  C     0,1,3
4  D     0,3
5  E     0,4
6  F     Null

第6条记录由于没有匹配的值,所以改为Null

表SubTable:
Id Description Fl
1  ABC         1
2  AB          1
3  CD          1
4  EA          1

------解决方案--------------------
create table MainTable(Id int, Title varchar(20),SubId nvarchar(max))

insert into MainTable
select 1  ,'A',       0 union all
select 2  ,'B',       0 union all
select 3  ,'C',       0 union all
select 4  ,'D',       0 union all
select 5  ,'E',       0 union all
select 6  ,'F',       0


create table SubTable(Id int,Description varchar(20),Fl int)

insert into SubTable
select 1  ,'ABC',0 union all
select 2  ,'AB',0 union all
select 3  ,'CD',0 union all