我有一個表SQL服務器:插入多行到一個不同的表
CREATE TABLE [StudentsByKindergarten]
(
[FK_KindergartenId] [int] IDENTITY(1,1) NOT NULL,
[StudentList] [nvarchar]
)
在條目
(1, "John, Alex, Sarah")
(2, "")
(3, "Jonny")
(4, "John, Alex")
我要遷移這個信息給基於列的表下表。
CREATE TABLE [KindergartenStudents]
(
[FK_KindergartenId] [int] NOT NULL,
[StudentName] [nvarchar] NOT NULL)
)
,使其具有
(1, "John")
(1, "Alex")
(1, "Sarah")
(3, "Jonny")
(4, "John")
(4, "Alex")
我想我可以使用類似的答案的東西在這裏實現分割功能:How do I split a string so I can access item x?
這裏使用功能:
http://www.codeproject.com/Articles/7938/SQL-User-Defined-Function-to-Parse-a-Delimited-Str
我可以做點像這,
INSERT INTO [KindergartenStudents] ([FK_KindergartenId], [Studentname])
SELECT
sbk.FK_KindergartenId,
parsed.txt_value
FROM
[StudentsByKindergarten] sbk, dbo.fn_ParseText2Table(sbk.StudentList,',') parsed
GO
但似乎沒有工作。
這是一個很好的參考:http://www.sqlservercentral.com/articles/Tally+Table/72993/ – 2014-08-29 00:05:34
使用@ wewesthemenace的鏈接,一個問題像這樣的一個例子是在http:/ /dba.stackexchange.com/questions/72292/splitting-a-csv-column-from-select-query-into-multiple-columns/72298#72298 – 2014-08-29 01:46:39
@梅麗莎,我已經通過我的新答案切換我的舊接受的答案(使用交叉應用),我相信對未來的讀者更好。如果您不喜歡新的答案,請隨時再次切換接受的答案。 – Zanon 2014-09-26 03:17:32