я в настоящее время делают некоторые исследования по добыче данных и моей таблицы данных исследований выглядит следующиеSplit Строка с Position ID
ID Author
1 Ali,Ahmad,David,Kumar
2 Aslam,Abid,John
Теперь я хочу, чтобы разделить разделенные запятой имя авторов в несколько рядов с position_ID Для Пример
ID Author Position_ID
1 Ali 1
1 Ahmad 2
1 David 3
1 Kumar 4
2 Aslam 1
2 Shahzad 2
2 John 3
Я в настоящее время сделал сплит функцию и следующий запрос, который может расщепляет только значение столбцов автора в многоярусные, но не может получить автор position_ID в строке в отдельную колонку. Пожалуйста, дайте мне несколько советов.! [Введите описание изображения здесь] [1] Заранее спасибо
CREATE Function [dbo].[SplitString]
(@List Varchar(Max), @Delimiter Char(1))
Returns @Items
Table (Item Varchar(max))
As
Begin
Declare @Item Varchar(max), @Pos TinyInt
While Len(@List) > 0
Begin
Set @Pos = CharIndex(@Delimiter, @List)
If @Pos = 0 Set @Pos = Len(@List) + 1
Set @Item = Left(@List, @Pos - 1)
Insert @Items
Select Ltrim(Rtrim(@Item))
Set @List = SubString(@List, @Pos + Len(@Delimiter), Len(@List))
End
Return
End
declare @TAB table (strg varchar(max),Research_ID bigint)
insert @TAB
select authors,Research_ID from Citation
Select S.item As [Authors],Research_ID
From @TAB T
Cross apply [dbo].[SplitString](T.strg,',') S;
Пль перейдите по следующей ссылке, чтобы просмотреть ответ на указанный выше вопрос. http://social.msdn.microsoft.com/Forums/sqlserver/en-US/678366ed-3d48-4778-bc9a-4bf50b394032/split-string-into-multiple -rows-с-позиционно-ID # 12c85a19-6b5f-4437-8b54-65aecd6a0488 – user2433263