你的意思是?
DECLARE @s VARCHAR(8000)
SET @s='aa,bbde,c'
SELECT CHARINDEX(',', ...@s...)之后得出的结果是 8 而不是 3, 是这个意思吗
DECLARE @s VARCHAR(8000)
SET @s='aa,bbde,c'
SELECT CHARINDEX(',', ...@s...)之后得出的结果是 8 而不是 3, 是这个意思吗
解决方案 »
- 求一条高效语句得最大值对应的日期
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败?
- 数据库连接初级问题
- 高手急救命,SQL 2005 Express版本的问题,跪求了
- 如何自动更新?
- select into tablename
- 请教高手,高难问题
- SQL SERVER 2005 频繁对一个表进行更新问题
- 菜鸟问题(急!急!急1)高人们快快来帮帮我 :(
- c语言连接access数据库操控sql
- 应该是一个比较简单的问题,在线等!
- 关于站内搜索问题,估计有30万个左右静态页面了如何做这个搜索,是走数据库还是搜索站点?
set nocount on
select top 100000 id=identity(int,1,1),'abcdefghijklmnopqrestuvwxyz' as col2 into # from syscolumns a,syscolumns b declare @t datetime
set @t=getdate()
select charindex('z',reverse(col2))as a into #1 from #
select datediff(ms,@t,getdate())set @t=getdate()
select charindex('z',(col2))as a into #2 from #
select datediff(ms,@t,getdate())set @t=getdate()
select charindex('a',reverse(col2))as a into #3 from #
select datediff(ms,@t,getdate())set @t=getdate()
select charindex('a',(col2))as a into #4 from #
select datediff(ms,@t,getdate())
go
drop table #,#1,#2,#3,#4
set nocount off
所以,應該沒什麼效率問題
Declare @c varchar(10)
SET @s='aaabbaade,cc'
Set @c = 'cc'
SELECT Len(@s)-CharIndex(Reverse(@c), Reverse(@s)) - ( Len(@c)-1 ) + 1如果你仅仅想要从尾部开始查找的话,上面的结果应该就可以了用了Reverse后的效率不会低很多的,不会成倍数的关系。