是字符型的数据记录,例如:第一张表中的“名称”字段某条记录的内容为:XX市XX区第二人民医院,每二张表中的“名称”字段内容为:XX区第二人民医院。我就是想把两张表中的“名称”字段内容相似的记录给找出来

解决方案 »

  1.   

    declare @tbA table([名称] nvarchar(20))
    insert into @tbA 
    select 'XX市XX区第二人民医院'  union all
    select 'XX市XX区第一人民医院'  union all
    select 'XX市XX区第三人民医院'  union all
    select 'XX市XX区医院'  union all
    select 'XX市XX区人民医院'  declare @tbB table([名称] nvarchar(20))insert into @tbB 
    select 'XX区第二人民医院'  union all
    select 'XX区第一人民医院'  union all
    select '第三人民医院'SELECT * FROM @tbA A
    LEFT JOIN @tbB B ON 1=1
    WHERE charindex(B.[名称],A.[名称])>0
    /*
    名称                   名称
    -------------------- --------------------
    XX市XX区第二人民医院         XX区第二人民医院
    XX市XX区第一人民医院         XX区第一人民医院
    XX市XX区第三人民医院         第三人民医院
    */
      

  2.   

    我再举下例子:
    比如表1名称字段中有以下内容
    XX县金电酒店
    XX县恒大宾馆
    XX县京广大厦
    XX县台南宾馆
    XX县富都宾馆
    XX县曙光旅店 表2名称字段中有以下内容
    XX口岸医院
    XX市职工医院
    XX县新源联营加油站
    XX县石油企业集团公司水东加油站 
    XX县电城镇农业银行
    XX县电城镇卫生院
    XX县电城镇人民政府
    XX市XX县恒大宾馆
    XX市XX县京广大厦
    XX市XX县台南宾馆
    红色字体的内容其实都是同一个单位名称,只是表2的内容中多了XX市,但如果直接匹配的话就匹配不上嘛,听说要把记录读到一个临时表然后一条条记录匹配近似值。本人比较菜,希望各位多多包涵。
      

  3.   

    不好意思因为我无法修改贴的内容,而上面那张贴又标错了一个单位名称,所以重新发
    我再举下例子: 
    比如表1名称字段中有以下内容 
    XX县金电酒店 
    XX县恒大宾馆 
    XX县京广大厦
    XX县台南宾馆 
    XX县富都宾馆 
    XX县曙光旅店 表2名称字段中有以下内容 
    XX口岸医院 
    XX市职工医院 
    XX县新源联营加油站 
    XX县石油企业集团公司水东加油站  
    XX县电城镇农业银行 
    XX县电城镇卫生院 
    XX县电城镇人民政府 
    XX市XX县恒大宾馆 
    XX市XX县京广大厦
    XX市XX县台南宾馆 
    红色字体的内容其实都是同一个单位名称,只是表2的内容中多了XX市,但如果直接匹配的话就匹配不上嘛,听说要把记录读到一个临时表然后一条条记录匹配近似值。本人比较菜,希望各位多多包涵。 
      

  4.   


    declare @tbA table([名称] nvarchar(20))
    insert into @tbA 
    select 'XX县金电酒店'  union all
    select 'XX县恒大宾馆'  union all
    select 'XX县京广大厦'  union all
    select 'XX县台南宾馆'  union all
    select 'XX县富都宾馆'  union all
    select 'XX县曙光旅店'  declare @tbB table([名称] nvarchar(20))insert into @tbB 
    select 'XX口岸医院'  union all
    select 'XX市职工医院'  union all
    select 'XX县新源联营加油站'  union all
    select 'XX县石油企业集团公司水东加油站'  union all
    select 'XX县电城镇农业银行'  union all
    select 'XX县电城镇卫生院'  union all
    select 'XX县电城镇人民政府'  union all
    select 'XX市XX县恒大宾馆' union all
    select 'XX市XX县京广大厦'  union all
    select 'XX市XX县台南宾馆' SELECT * FROM @tbA A
    LEFT JOIN @tbB B ON 1=1
    WHERE (charindex(B.[名称],A.[名称])>0) or (charindex(A.[名称],B.[名称])>0)/*
    名称                   名称
    -------------------- --------------------
    XX县恒大宾馆         XX市XX县恒大宾馆
    XX县京广大厦         XX市XX县京广大厦
    XX县台南宾馆         XX市XX县台南宾馆
    */