我sql2000的查询分析器里面执行如下代码(定义函数+调用函数):
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
select dbo.Get_StrArrayLength('78,1,2,3',',') as '长度'
为什么总是显示
select dbo.Get_StrArrayLength('78,1,2,3',',') as '长度'
这一句话是错误的呢?
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
select dbo.Get_StrArrayLength('78,1,2,3',',') as '长度'
为什么总是显示
select dbo.Get_StrArrayLength('78,1,2,3',',') as '长度'
这一句话是错误的呢?
解决方案 »
- 反过来用IN和REPLACE函数的问题?
- 索引的使用问题
- 急急急急急急急急急急急急急急:求高手 赐教
- 求助一个查询语句
- 数据导出错误
- 如何控制用户有最低权限?
- 存储过程可以实现数据批量入库吗?
- [SQL Server]已将数据库上下文改为'test'什么意思?
- 在SQL Server7.0中,我对一个表做了一个UPDATE触发器,把修改过的数据放入一个临时表中。可是每次我从Enterprise Manger中打开该表,手工个修改其中内容的时侯,无论做多少次,临时表中始终放的是最最原始的那个数据,这是为什么?
- oracle可视化的工具
- 关于最大值的查询
- 要死人的问题,数据库没有 备份了,怎么修复啊。
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
GO --加上GO
select dbo.Get_StrArrayLength('78,1,2,3',',') as '长度'
Select @S = '78,1,2,3'
Select Len(@S) - Len(Replace(@S, ',', '')) + 1 As '长度'
--4