2012-01-25 20 views
0

私の質問機能の下に機能は、どのように私が書いている

ALTER FUNCTION [dbo].StringSplitting_23012012 (@string NVARCHAR(MAX), 
@Delimiter NVARCHAR(1)) 
RETURNS 
@Temp TABLE (string NVARCHAR(MAX)) 
AS 
BEGIN 
    DECLARE @p int 
    SET @p = 0 
    --SET @string = (@string + @Delimiter) 
    WHILE charindex(@Delimiter,@string) < 0 --,@p) <> 0 
    BEGIN 
     INSERT into @Temp 
     SELECT substring(@string,@p,charindex(@Delimiter,@string)) --+ @p) 
     --select substring(@string,5,15) SET @p = charindex(@Delimiter,@string) --1 
    END 
    RETURN 
END 

を実行し、その機能

SELECT * FROM [dbo].StringSplitting('SPLA-WINSVRSTD #P19-1999 QTY1: 
SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 : 
SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 : 
SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 : 
SPLA-WINSVRSTD #P69-6999 QTY8',':') 

に文字列を渡すことで、所望の出力を得るために、私は

として出力を取得しています
SPLA-WINSVRSTD #P19-1999 QTY1 
SPLA-WINSVRSTD #P12-2999 QTY2 
SPLA-WINSVRSTD #P19-1399 QTY3 
SPLA-WINSVRSTD #P19-1399 QTY4 
SPLA-WINSVRSTD #P59-5999 QTY5 
SPLA-WINSVRSTD #P69-6999 QTY6 
SPLA-WINSVRSTD #P79-7999 QTY7 
SPLA-WINSVRSTD #P69-6999 QTY8 

これまではokですが、出力が必要です

SPLA P12-2999 QTY2 
SPLA P19-1399 QTY3 
SPLA P19-1399 QTY4 
SPLA P59-5999 QTY5 
SPLA P69-6999 QTY6 
SPLA P79-7999 QTY7 
SPLA P69-6999 QTY8 

uは、所望の出力

答えて

0

を取得するための関数やプロシージャを作成する方法を私を助けてくださいだろう、私はREPLACE機能を使用することをお勧め - そのように:

[わかりやすくするためにフォーマット済み]

SELECT * FROM [dbo].StringSplitting(
REPLACE('SPLA-WINSVRSTD #P19-1999 QTY1: 
     SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 : 
     SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 : 
     SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 : 
     SPLA-WINSVRSTD #P69-6999 QTY8', '-WINSVRSTD #','') 
,':') 

[コピー&ペースト用]

SELECT * FROM [dbo].StringSplitting(REPLACE(
'SPLA-WINSVRSTD #P19-1999 QTY1 : SPLA-WINSVRSTD #P12-2999 QTY2 : SPLA-WINSVRSTD #P19-1399 QTY3 : SPLA-WINSVRSTD #P19-1399 QTY4 : SPLA-WINSVRSTD #P59-5999 QTY5 : SPLA-WINSVRSTD #P69-6999 QTY6 : SPLA-WINSVRSTD #P79-7999 QTY7 : SPLA-WINSVRSTD #P69-6999 QTY8' 
, '-WINSVRSTD #','') ,':') 
関連する問題