TSQL dbo.split включая ключ - PullRequest
       0

TSQL dbo.split включая ключ

0 голосов
/ 22 июня 2011

Итак, у меня есть функция ниже. Мой вопрос заключается в том, как я могу получить следующий запрос, чтобы использовать функцию для создания представления. Я пытаюсь получить p_c_id в качестве @ValueID и примечания в качестве @ List.

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   

1 Ответ

2 голосов
/ 23 июня 2011
select 
  SV.RowID,
  SV.[Value],
  ValueID 
from dbo.product as P
  cross apply dbo.Split2Value('DELI?', P.notes, P.p_c_id) as SV
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...