SQL 比较中文字符串
/*
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 比较中文字符串的更多相关文章
- sql server使用sql插入中文字符串乱码问题
在插入语句前加N就行了 sb.Append(string.Format("update chapter set [content]=N'{0}' where Id ={1} ;", ...
- SQL Server 插入含有中文字符串出现乱码现象的解决办法
ELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage') --查询SQLServer编码格式的语句 下面 ...
- SQL Server:字符串函数
以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...
- asp.net插入sql server 中文乱码问题解决方案
创建数据库的代码---创建promary表 create table promary ( proID int primary key, proName varchar(50) not null ) 出 ...
- 关于TP3.2框架读取Sql server中文字段数据以及处理乱码的一些小心得
最近要做一个项目,需要使用TP3.2框架,之前什么也不会,就硬着头皮上了,结果真的闹了挺多emmmmmm挺低级的错误,就像SQL Server中文字段的读取,一开始我是照着读取英文字段的格式来写的,在 ...
- php 获取中文长度 截取中文字符串
#获取中文长度mb_strlen($str,$encoding); #截取中文字符串 mb_substr(str,start,length,encoding);
- Ajax回调函数返回的中文字符串乱码问题
通过ajax提交请求,返回的response所带的中文字符串一直显示为乱码,写了如下代码也无效: response.setCharacterEncoding("UTF-8"); r ...
- 中文字符串转换为十六进制Unicode编码字符串
package my.unicode; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Uni ...
- js jQuery中文字符串比较
先说下普通字符串(英文)比较: 一般使用双等来判断(==),如果还需要类型相同那么就用三等(===) 1. 双等(==)是完全向后兼容的,如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转 ...
随机推荐
- 【第六篇】Volley之https相关
Volley之https信任所有证书实现: public class HttpsTrustManager implements X509TrustManager { private static Tr ...
- L3-005. 垃圾箱分布
L3-005. 垃圾箱分布 题目链接:https://www.patest.cn/contests/gplt/L3-005 Dijstra 与L2-001.紧急救援类似,是Dijstra最短路的拓展, ...
- 2016年团体程序设计天梯赛-决赛 L1-3. 出租(20)
下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对 ...
- POJ 1323 Game Prediction#贪心
(- ̄▽ ̄)-* //既然是求最少能胜几次 //说明对方是要尽可能让我输 //但为了避免浪费,对方会用比我的牌大的牌中的最小pip的牌来击败我 #include<iostream> #in ...
- cmstop核心
控制器在什么时候实例化? ---每发送一次请求,都要从入口文件开始一步步往下走 index.php入口文件-->到第二个文件(核心文件cmstop.php)中实例化controller类核心文 ...
- MVC3+EF4.1学习系列(七)-----EF并发的处理
看这篇文章之前 推荐园子里的 这个文章已经有介绍了 而且写的很好~~ 可以先看下他的 再看我的 并发 1.悲观并发 简单的说 就是一个用户访问一条数据时 则把这个数据变为只读属性 把该数据变为独占 ...
- 关于开启url的pathinfo模式
1.apache要开启pathinfo模式,需要在 <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverrid ...
- 阿里云 镜像 源 debian
/etc/apt/sources.list deb http://mirrors.aliyun.com/debian wheezy main contrib non-freedeb-src http: ...
- 【Machine Learning in Action --3】决策树ID3算法
1.简单概念描述 决策树的类型有很多,有CART.ID3和C4.5等,其中CART是基于基尼不纯度(Gini)的,这里不做详解,而ID3和C4.5都是基于信息熵的,它们两个得到的结果都是一样的,本次定 ...
- cocoaPods的安装方法
1.打开终端 2.先升级Gem sudo gem update --system 3.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https:/ ...