0
我有一个字符串,如:通过索引获取字符串的特定部分?
@TempCol = sigma_x1,sigma_x2,...,sigma_xd,XX,YY,ZZ
所以,我怎么能得到这个字符串,基于的特定部分,让说一个指数。 所以
- 如果索引为0,得到sigma_x1
- 如果索引是1,得到sigma_x2
- 如果索引是2,得到sigma_x3
- 如果索引d-1,得到sigma_xd
- 如果索引是d,则获得XX,如果索引是d + 1,则获得XX,
- ,获得YY 等等。
以前舍甫琴科中号解决了类似的问题,他的代码获取根据nomber一子,但返回一个子方式如下:
- 如果@d是1,得到sigma_x1
- 如果@d是2,得到sigma_x1,sigma_x2
- 如果@d是3,得到sigma_x1,sigma_x2,sigma_x3
- 如果@d是4,得到sigma_x1,sigma_x2,sigma_x3,sigma_x4
- 如果@d是d,得到sigma_x1,sigma_x2,sigma_x3,sigma_x4,...,sigma_xd(所有的串)
如何更新此过程,以获得特定元素?
DECLARE @TempCol varchar(max), @d int, @p int, @Result varchar(max);
SET @TempCol = 'item1,item2,itemA,itemB,item#,item$';
SET @d = 3;
SET @p = 1;
WHILE @d > 0 AND @p > 0 BEGIN
SET @p = CHARINDEX(',', @TempCol, @p);
IF @p > 0 SET @p = @p + 1;
SET @d = @d - 1;
END;
IF @p = 0
SET @Result = @TempCol
ELSE
SET @Result = SUBSTRING(@TempCol, 1, @p - 2);
SELECT @Result;
一个问题,我如何在存储过程中调用你的函数,我使用类似的语法吗? – cMinor 2011-02-06 04:33:36