当前位置: 首页 > 图文教程 > 数据库 > MSSQL > sqlserver 中charindex/patindex/like 的比较

MSSQL
如何得到当前所在的sql的数据库名称
在VB中压缩ACCESS数据库
如何在SQL Server中恢复数据
解决SQL速度慢的方法
SELECT语句中“加锁选项”功能说明
在英文NT及SQL下,实现页面中中文出现
一个复合查询方法
利用Case敘述做SQL的動態排列
使用特殊数据
特殊数据(SQL)
SELECT查询的应用(一)
SELECT查询的应用(二)
SELECT查询的应用(三)
SQL Server如何解决加密问题?
如何在应用程序中避免死锁问题?
事务日志被填满的原因是什么?
讨论: SELECT TOP N问题 (2)
如何转移SQL SERVER数据库
SQL Server性能分析参数
用VB6读写数据库中的图片

MSSQL 中的 sqlserver 中charindex/patindex/like 的比较


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 298 ::
收藏到网摘: n/a

sqlserver 中charindex/patindex/like 的比较,大家可以看下根据需要自行选择。 一、测试环境:
1。数据库:Sql Server 2008
2。测试表:15000记录,char类型主键,无其他索引
3。测试字段:ntext 类型,最大数据长度12000
二、测试语句:
1。select * from ProductTemp where ProductDesc like '%192.168.70.236%'
2。select * from ProductTemp where charindex('192.168.70.236',ProductDesc)>0
3。select * from ProductTemp where patindex('%192.168.70.236%',ProductDesc)>0
三、测试结果:
1。效率测试结果: charindex > like > patindex ,效率差大概20%
2。适用性测试结果:
1)charindex对于检索结果最大位移有要求,经测试,Sql2008中的ntext字段,位移不能超过3987,否则返回0;
2)patindex 和 like 无位移限制;
3)patindex 支持匹配表达式,可以应用正则
4)like可以用'%oldstring%'进行模糊匹配;
5)charindex只能匹配固定字符串