首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么返回标识符,之间的内容

2012-02-03 
如何返回标识符,,之间的内容~如:@Ids,4,57,5645,45,545现在要求返回,第5个,到未尾的数字或是返回第4个“,”

如何返回标识符,,之间的内容~
如:
@Ids   =   ',4,57,5645,45,545 '

现在要求返回,第5个   ,到未尾的数字
或是
返回第4个“,”到第5个“,”之间的数字

在查询分析器中如何完成呢?

[解决办法]
charindex()
[解决办法]
create FUNCTION dbo.f_splitSTR(
@s varchar(8000), --要分拆的字符串
@split varchar(10), --数据分隔符
@pos int -- 取第几个
)RETURNS varchar(100)
AS
BEGIN
DECLARE @splitlen int, @re varchar(100)
SET @splitlen=LEN(@split+ 'a ') - 2
WHILE CHARINDEX(@split,@s) > 0 AND @pos > 0
SELECT
@re = LEFT(@s,CHARINDEX(@split,@s)-1),
@s=STUFF(@s,1,CHARINDEX(@split, @s)+@splitlen, ' '),
@pos = @pos - 1
RETURN(CASE
WHEN @pos = 0 THEN @re
WHEN @pos = 1 THEN @s
ELSE NULL END)
END

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

----现在要求返回,第5个 ,到未尾的数字
select dbo.f_splitSTR( ',4,57,5645,45,545 ', ', ',6)
----返回第4个“,”到第5个“,”之间的数字
select dbo.f_splitSTR( ',4,57,5645,45,545 ', ', ',5)

[解决办法]
楼上的正确

热点排行