一个表内有多个字段与另一个表进行关键字匹配,例如A表:xhmcB表:xhhd1生物科技1我对地理感兴趣2人文地理2航天科技很发达3航天科学3生物研究怎么通过SQL找出关键字并匹配,求详细代码... 一个表内有多个字段与另一个表进行关键字匹配,例如
A表:xh mc B表: xh hd
1 生物科技 1 我对地理感兴趣
2 人文地理 2 航天科技很发达
3 航天科学 3 生物研究
怎么通过SQL找出关键字并匹配,求详细代码!
想得到的结果就是:
xh_a mc xh_b hd
1 生物科技 3 生物研究
2 人文地理 1 我对地理感兴趣
3 航天科学 2 航天科技很发达
我是这样分析的  你的A表里的数据  可以拆分成前两个与后两个 不可能出现 物科 这样的关键词  所以 按照这种想法:
--建立测试数据
create table #A(xh int,mc varchar(100))
insert into #A values(1,'生物科技')
insert into #A values(2,'人文地理')
insert into #A values(3,'航天科学')
create table #B(xh int,hd varchar(100))
insert into #B values(1,'我对地理感兴趣')
insert into #B values(2,'航天科技很发达')
insert into #B values(3,'生物研究')
--实现部分

select * from #B tt left join #A t1 on CHARINDEX (SUBSTRING ( t1 .mc ,1,2),tt.hd ) 0 or CHARINDEX (SUBSTRING ( t1 .mc ,3,2),tt.hd ) 0

/*
xh hd xh mc
1 我对地理感兴趣 2 人文地理
2 航天科技很发达 1 生物科技
2 航天科技很发达 3 航天科学
3 生物研究 1 生物科技

*/

如果想达到你上面那个表的效果 或者说 想提取的关键字不包括 科技。 那只能通过游标进行了。
本回答被提问者采纳