/*
declare @str1 varchar(200),@str2 varchar(200)
set @str1=N'江西省南昌市其它区高新区火炬大道809号'
set @str2=N'江西省南昌市其它区高新区火炬大道809号' */
ALTER FUNCTION [dbo].[F_strcompare](@str1 nVARCHAR(200),
@str2 nVARCHAR(200))
RETURNS numeric(3,2)
AS
BEGIN
declare @returnvalue numeric(3,2)
set @returnvalue=0
if len(@str1)=0 or LEN(@str2)=0
begin
return @returnvalue
end /*完全相等与完全包含*/
if @str1=@str2 or charindex(@str1,@str2)>0 or charindex(@str2,@str1)>0
begin
set @returnvalue= 1.0
return @returnvalue
end DECLARE @len INT, --长度
@min int,
@pos INT, --累计符合个数
@currindex int, --上次匹配位置
@index int, --本次匹配位置
@k INT,
@ret numeric(3,1), --相似度
@word nvarchar(200), --进行分解的字符串
@strsource nvarchar(200) --长度较大的字符串 select @pos=0,@index=0,@currindex=0,@k=0 select @len =(
case when LEN(@str1)>LEN(@str2)
then LEN(@str1)
else
LEN(@str2)
end
),
@min=(
case when LEN(@str1)>LEN(@str2)
then LEN(@str2)
else
LEN(@str1)
end
)
,@word=(
case when LEN(@str1)>LEN(@str2)
then @str2
else
@str1
end
)
,@strsource=(
case when LEN(@str1)>LEN(@str2)
then @str1
else
@str2
end
) while @k < @len-1
begin
select @index=charIndex(substring(@word,@k,1),@strsource)
if @index > 0 and @index > @currindex
begin
set @pos = @pos+1
set @currindex=@index
--print @index
end
set @k=@k+1
end --SET @ret = (CAST(@pos * 100.0 / @k AS NUMERIC(3, 0)))
SET @ret= (@pos * 1.0 / @min)
return @ret
End
--select @ret,@k,@pos,@len,@min

  

SQL 比较中文字符串的更多相关文章

  1. sql server使用sql插入中文字符串乱码问题

    在插入语句前加N就行了 sb.Append(string.Format("update chapter set [content]=N'{0}' where Id ={1} ;", ...

  2. SQL Server 插入含有中文字符串出现乱码现象的解决办法

    ELECT  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')       --查询SQLServer编码格式的语句 下面 ...

  3. SQL Server:字符串函数

    以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...

  4. asp.net插入sql server 中文乱码问题解决方案

    创建数据库的代码---创建promary表 create table promary ( proID int primary key, proName varchar(50) not null ) 出 ...

  5. 关于TP3.2框架读取Sql server中文字段数据以及处理乱码的一些小心得

    最近要做一个项目,需要使用TP3.2框架,之前什么也不会,就硬着头皮上了,结果真的闹了挺多emmmmmm挺低级的错误,就像SQL Server中文字段的读取,一开始我是照着读取英文字段的格式来写的,在 ...

  6. php 获取中文长度 截取中文字符串

    #获取中文长度mb_strlen($str,$encoding); #截取中文字符串 mb_substr(str,start,length,encoding);

  7. Ajax回调函数返回的中文字符串乱码问题

    通过ajax提交请求,返回的response所带的中文字符串一直显示为乱码,写了如下代码也无效: response.setCharacterEncoding("UTF-8"); r ...

  8. 中文字符串转换为十六进制Unicode编码字符串

    package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Uni ...

  9. js jQuery中文字符串比较

    先说下普通字符串(英文)比较: 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===) 1. 双等(==)是完全向后兼容的,如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转 ...

随机推荐

  1. CodeForces 703B Mishka and trip

    简单题. 先把环上的贡献都计算好.然后再计算每一个$capital$ $city$额外做出的贡献值. 假设$A$城市为$capital$ $city$,那么$A$城市做出的额外贡献:$A$城市左边城市 ...

  2. LOOPS

    LOOPS 题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 递推 设dp[i][j]为(i,j)到终点期望的使用魔力值,mp[i][ ...

  3. Spring的字符编码过滤器CharacterEncodingFilter

    Spring中的字符编码过滤器,用来解决我们项目中遇到的编码问题. 使用方式特别友好,在web.xml加入: <filter> <description>字符集过滤器</ ...

  4. 修改VirtualBox虚拟机默认存储路径及虚拟机迁移方法

    修改默认安装路径 在安装完虚拟机以后发现我的虚拟的磁盘文件是放在C盘的,就想着有没有办法修改默认存储路径.后来发现确实可以修改,修改虚拟机方法如下:"管理"--->" ...

  5. 使用jQuery的hover事件在IE中不停闪动的解决方法

    在使用jQuery的hover事件时,经常会因为鼠标滑动过快导致菜单不停闪动的情况,相信很多朋友都遇到过自己做的纵向下拉菜单不停的收缩,非常的讨厌.今天在给一个网站设计菜单时也遇到了这个情况,结果在百 ...

  6. tomcat Server.xml Context配置问题

    有时候需要在tomcat里面做特殊的配置,来进行访问: 例如你的程序 名字是hello端口是80  这时候你要访问你的程序 就要用 localhost/hello 来访问了. 但是怎么直接用 loca ...

  7. ubuntu环境下docker安装步骤

    本文是根据docker官方文档翻译,原文:https://docs.docker.com/engine/installation/linux/ubuntulinux/ Docker 支持以下 Ubun ...

  8. jquery 画板折叠

    <!doctype html><html lang="en"><head> <meta charset="utf-8" ...

  9. agentX各个角色功能

    AgentX Roles  1.master An entity acting in a master agent role performs the following  functions: -  ...

  10. EnumPrinters用法

    看API描述,不怎么理解,还是在网上找到用法,记载一下: 1: DWORD dwNeeded = 0, dwNum = 0; 2: EnumPrinters(PRINTER_ENUM_LOCAL, N ...