|
#14楼 得分:5回复于:2008-08-05 09:02:11
呵呵,不好意思,我又测试了下. - SQL code
--这是找得到字符时的情况.
declare
@t datetime
set @t=getdate();
select collation,dbo.f_findstr(collation,'_',2) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.char_index(collation,'_',2) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.F_Str(collation,2,'_') from syscolumns,syscomments
print datediff(ms,@t,getdate());
--结果
/*
(所影响的行数为 55624 行)
2903
(所影响的行数为 55624 行)
2406
(所影响的行数为 55624 行)
2423
*/
- SQL code
--这是找不到字符时的情况,查找第21个.
declare
@t datetime
set @t=getdate();
select collation,dbo.f_findstr(collation,'_',21) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.char_index(collation,'_',21) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.F_Str(collation,21,'_') from syscolumns,syscomments
print datediff(ms,@t,getdate());
--结果
/*
(所影响的行数为 55624 行)
5733
(所影响的行数为 55624 行)
2453
(所影响的行数为 55624 行)
2420
*/
--在这情况下第一个直接出错,返回的位置是8
- SQL code
--这是找不到字符时的情况,查找第4个.
declare
@t datetime
set @t=getdate();
select collation,dbo.f_findstr(collation,'_',21) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.char_index(collation,'_',21) from syscolumns,syscomments
print datediff(ms,@t,getdate());
set @t=getdate();
select collation,dbo.F_Str(collation,21,'_') from syscolumns,syscomments
print datediff(ms,@t,getdate());
--结果
/*
(所影响的行数为 55624 行)
2953
(所影响的行数为 55624 行)
2440
(所影响的行数为 55624 行)
2500
*/
--在这情况下第三个直接出错,返回的位置是18
在找得到的情况下,似乎 ☆子灵☆ 的最快,找不到的情况下越多找不到 中国风 的就越最快. 可是为什么有时候会出现错误呢?有没有高手帮忙解释下啊.
|
|
|