日期:2014-05-18  浏览次数:20593 次

instr函数在MSSQL中不能使用,请问在MSSQL用怎么实现同样功能
instr( ' "&request( "PosName ")& " ',   PosName)这个在ASP+ACCESS数据正常使用的,
请问在ASP+MSSQL中怎么使用呢?

------解决方案--------------------
可以用 CHARINDEX() 代替

CHARINDEX(str1 ,str2 [开始搜索的位置,可以不写])
------解决方案--------------------
Access中用:

instr( "bcad ", "a ")

SQL Server中用:

select charindex( 'a ', 'bcad ')
------解决方案--------------------
select charindex( 'c ', 'abcd ')--在abcd中查出c的位置,结果为3
select charindex( 'c ', 'abcd ',2)--在abcd中从第2个字符开始查出c的位置,结果为2

------解决方案--------------------
在SQL中有两个函数可以实现:
1.CHARINDEX 返回字符串中指定表达式的起始位置。
CHARINDEX ( 搜索字符串, 被搜索字符串 [ ,搜索开始位置] )
如果搜索开始位置省略,将从被搜索字符串的第一个位置开始,否则从指定的位置开始

2.PATINDEX 返回指定表达式中某模式第一次出现的起始位置;
PATINDEX ( '%搜索字符串% ' , 被搜索字符串)
此函数的功能与CHARINDEX基本相同,不同之处在于此函数在搜索时可以采用通配符的方式进行搜索,详细操作方法可以参考SQL的联机帮助

3.注意:两个函数搜索时,搜索字符串不区分大小写