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