2011-06-22 11 views
0

私は以下の機能を持っています。私の質問は、どのようにビューを作成する関数を使用する次のクエリを取得できます。私はp_c_idを@ValueIDに、そしてnotesを@Listにしようとしています。キーを含むTSQL dbo.split

select p_c_id, notes from dbo.product

create FUNCTION [dbo].[Split2Value] 
     ( @Delimiter varchar(5), 
      @List  varchar(8000), 
      @ValueID bigint 
     ) 
     RETURNS @TableOfValues table 
      ( RowID smallint IDENTITY(1,1), 
      [Value] varchar(500), 
       ValueID bigint 
     ) 
    AS 
     BEGIN 

      DECLARE @LenString int 

      WHILE len(@List) > 0 
      BEGIN 

       SELECT @LenString = 
        (CASE charindex(@Delimiter, @List) 
         WHEN 0 THEN len(@List) 
         ELSE (charindex(@Delimiter, @List) -1) 
        END 
        ) 

       INSERT INTO @TableOfValues 
        SELECT substring(@List, 1, @LenString), @ValueID 

       SELECT @List = 
        (CASE (len(@List) - @LenString) 
         WHEN 0 THEN '' 
         ELSE right(@List, len(@List) - @LenString - 1) 
        END 
        ) 
      END 

      RETURN 

     END 

答えて

2
select 
    SV.RowID, 
    SV.[Value], 
    ValueID 
from dbo.product as P 
    cross apply dbo.Split2Value('DELI?', P.notes, P.p_c_id) as SV 
関連する問題