0
我有兩個表是這樣的:加入很多行到一個XML列
和
第一個生成的表列出了所有的演員/導演/其他和第二張表列出了所有的電影。我需要做的是將所有Person_ID和Name放在第二個表中的一列中,理想情況是通過連接和XML轉換。我知道如何將整個表格轉換爲XML,但是我不確定如何將它轉換爲十幾行,是迭代的方式嗎?有任何想法嗎?
我有兩個表是這樣的:加入很多行到一個XML列
和
第一個生成的表列出了所有的演員/導演/其他和第二張表列出了所有的電影。我需要做的是將所有Person_ID和Name放在第二個表中的一列中,理想情況是通過連接和XML轉換。我知道如何將整個表格轉換爲XML,但是我不確定如何將它轉換爲十幾行,是迭代的方式嗎?有任何想法嗎?
如果您使用FOR XML PATH('')
它消除了根標籤。如果您不指定列別名,它將僅輸出該值。因此,您可以在子查詢中創建一個值作爲列值之一。像這樣的東西應該讓你開始:
create table #Cast (FilmID int, Person_ID int, PersonName varchar(20))
create table #Films (FilmID int , FilmName varchar(20))
insert into #Cast values (1, 1, 'bob')
insert into #Cast values (1, 2, 'tom')
insert into #Cast values (2, 3, 'sam')
insert into #Cast values (2, 4, 'ray')
insert into #Films values (1, 'Flowers for Charlie')
insert into #Films values (2, 'Batman')
SELECT #Films.*,
SUBSTRING(
(SELECT (',' + convert(varchar(10),Person_ID) + ',' + PersonName)
FROM #Cast
WHERE #Films.FilmID = #Cast.FilmID
ORDER BY #Films.FilmID, #Cast.FilmID
FOR XML PATH('')
), 2, 8000) CastList
FROM #Films
這個想法幫助我得到了一個可行的解決方案,謝謝! –
直視FOR XML PATH –
我知道如何錶轉換的XML PATH了,但這種情況比較複雜一點。 –