当前位置: 代码迷 >> Sql Server >> 用存储过程实现SQL中某个字段的内容相似度 搜索和匹配解决思路
  详细解决方案

用存储过程实现SQL中某个字段的内容相似度 搜索和匹配解决思路

热度:168   发布时间:2016-04-27 19:16:53.0
用存储过程实现SQL中某个字段的内容相似度 搜索和匹配
大家好:
  有一个表,其中有一个 context nvarchar(max) 的字段
  表中的数据超过十万条

  希望编写一个存储过程,传入连个参数
  str1(nvarchar(500)) 和 double sim

  存储过程实现在表中搜索 context的内容,如果context的内容和
  传入的参数 str1的相似度 达到 大于 第二个参数 sim 就算符合条件
  并返回符合条件的全部记录

  例如表中字段内容为
  1、abcdefghijk 
  2、abcdefghijk1 
  3、abcdefg1hijk1 
  4、abcdefg11hijk 

  如果传入

  abcdefghijk , 90%
  那么返回
  1、abcdefghijk 
  2、abcdefghijk1 

  如果传入 
  abcdefghijk , 80%
  那么将返回
  1、abcdefghijk 
  2、abcdefghijk1 
  3、abcdefg1hijk1 
  4、abcdefg11hijk 

  备注:
  abcdefghijk abcdefghijk 相似度:100%
  abcdefghijk abcdefghijk1 相似度:10/11约等于91%
  abcdefghijk abcdefg1hijk1 相似度:10/12约等于83%
  abcdefghijk abcdefg11hijk 相似度:10/12约等于83%
  


------解决方案--------------------
同位的比较?...

abcdefghijk和abcdefghijk
就是a跟a比.然后 b跟b比?..
------解决方案--------------------
引用楼主 ex3206 的帖子:
大家好:
有一个表,其中有一个 context nvarchar(max) 的字段
表中的数据超过十万条

希望编写一个存储过程,传入连个参数
str1(nvarchar(500)) 和 double sim

存储过程实现在表中搜索 context的内容,如果context的内容和
传入的参数 str1的相似度 达到 大于 第二个参数 sim 就算符合条件
并返回符合条件的全部记录

例如表中字段内容为
1、abcdefghijk
2、abcdefghijk…
  相关解决方案