if exists(select * from sysobjects where type='FN' and name='getSplitNum')
drop function getSplitNum
go
create function getSplitNum(@content text,@split varchar(10))
returns int
as
begin
declare @index int;set @index=1;
declare @num int;set @num=0;
declare @start int;set @start=0;
while @index>0
begin
set @index=charindex(@split,@content,@start);
set @start=@index+1;
set @num=@num+1;
end
return @num;
end
godbo.getSplitNum(@c_url,'|||')
存储过程里,如上代码,计算某字符串里,有多少个由|||分开的字符串. 运行结果最大值只有87,请教老师,问题在哪?************************************************
运行环境:sql 2000===================================
问题基本查到.但不知道怎么解决.由于@c_url过长(长度达到13000字符以上),导致出现比实际值小很多.应该是charindex在处理的时候,把@content转为了varchar(8000)。请教各位老师,此方法可否改进,或者用其他方法计算?________________________________________________________
@c_url='http://pic3.bengou.com/comicdata/hy/hyrz008081909/1219109066935/1219109122105.jpg|||http://pic3.bengou.com/comicdata/hy/hyrz008081909/1219109066935/1219109122181.jpg|||http://pic3.bengou.com/comicdata/hy/hyrz008081909/1219109066935/1219109122194.jpg|||http://pic3.bengou.com/comicdata/hy/hyrz008081909/1219109066935/1219109122215.jpg|||http://pic3.bengou.com/comicdata/hy/hyrz008081909/1219109066935/1219109122229.jpg……'
解决方案 »
- sql查询排序的问题
- 非常弱弱弱的问题
- 求一 sql 语句:select count(P_ID) from Company 的同时,我还想读取另几个字段(比如:company_name,company_address)这样的语句应该
- 查询连续上涨月数,断隔日期重新计算!~~
- 【疑惑求解】不能对包含聚合或子查询的表达式执行聚合函数。
- SQLServer2005 安装问题
- odbc和dao有什么区别
- 存储过程的用法?怎么依次返回过程的结果,如果不用游标的方法的话,还有哪些方法比较好?
- 关于退货问题。。我只有10分了。。大家帮个忙
- SQL同步复制问题
- sql server并发问题发生的情况
- 请问这个是怎么回事呢?
SELECT @S1=REPLICATE('A',7999)
SELECT @S2=REPLICATE('A',7999)+'1'
SELECT @S3='1'+REPLICATE('A',7999)
SELECT CHARINDEX('1',@S1+@S2)
SELECT CHARINDEX('1',@S1+@S3)
经过测试。CHARINDEX 不支持TEXT 类型,只支持字符类型,所以转换成只有8000的/*函数 语句
DATALENGTH READTEXT
PATINDEX SET TEXTSIZE
SUBSTRING UPDATETEXT
TEXTPTR WRITETEXT
TEXTVALID 你可以改变方式用UPDATETEXT ,PATINDEX 来实现
要不然升级2K5以上。[/code]