我需要將數據從一個表中下面的XML格式輸出:環流式
<studentid="000011111">
<academic_goal type="official">
<program_group>
<program type="catalog">2014-16</program>
<program type="degree">BS</program>
<program type="major">PS</program>
<program type="concentration">PCC</program>
</program_group>
<program_group>
<program type="catalog">2014-16</program>
<program type="degree">BS</program>
<program type="minor">HI</program>
</program_group>
</academic_goal>
</studentid>
到目前爲止,我所擁有的是:
<studentid="000011111">
<academic_goal type="official">
<program_group>
<program type="catalog">2014-16</program>
<program type="degree">BS</program>
<program type="major">PS</program>
<program type="minor">HI</program>
<program type="concentration">PCC</program>
</program_group>
</academic_goal>
</studentid>
我怎麼能遍歷這個信息,以便未成年人在自己的program_group
標籤(以及目錄和學位)?
這裏的表結構:
CREATE TABLE [dbo].[StudentProgramData](
[StudentID] [nvarchar](10) NULL,
[Catalog] [nvarchar](10) NULL,
[Degree] [nvarchar](10) NULL,
[Major] [nvarchar](50) NULL,
[Minor] [nvarchar](50) NULL,
[Concentration] [nvarchar](50) NULL)
的樣本數據:
insert into StudentProgramData
values
('000011111', '2014-16', 'BS', 'PS', 'HI', 'PCC'),
('000022222', '2012-14', 'BA', 'MK', 'BI', 'ESO'),
('000033333', '2012-14', 'BS', 'MB', NULL, 'AUE'),
('000044444', '2014-16', 'ME', 'PS', 'HI', NULL),
('000055555', '2010-12', 'MD', 'PS', NULL, 'PCC')
我包括5個樣本記錄,但我只以上顯示的第一個學生。
到目前爲止我的代碼的循環是:
(select
ltrim(rtrim(StudentProgramData.catalog)) as [program/@catalog],
ltrim(rtrim(StudentProgramData.degree)) as [program/@degree],
ltrim(rtrim(StudentProgramData.major)) as [program/@major],
ltrim(rtrim(StudentProgramData.minor)) as [program/@minor],
ltrim(rtrim(StudentProgramData.concentration)) as [program/@concentration]
from StudentProgramData
for xml path('program'), type).query('
<academic_goal type="official">
{
for $program in /program
return
<program_group>
{$program/Name}
<program type="catalog">{data($program/program/@year)}</program>
<program type="degree">{data($program/program/@degree)}</program>
<program type="major">{data($program/program/@major)}</program>
<program type="minor">{data($program/program/@minor)}</program>
<program type="concentration">{data($program/program/@concentration)}</program>
</program_group>
}
</academic_goal>')
任何幫助,您可以提供非常感謝。
正如有人已經指出他們的答案但沒有拼寫出來,是無效的XML。沒有屬性的情況下,您的節點不能擁有自主標識符。 有效。 –
djangojazz
這個問題解決了嗎?你需要進一步的幫助嗎?請允許我提示一個提示:如果這個問題已經解決,那麼在(最佳)答案的投票櫃檯下面勾選驗收檢查將會非常友善。這將1)標記這個問題已解決2)使追隨者更容易找到最佳的解決方案3)支付點給回答者和4)支付點給你。既然你已經跨越了15分的邊界,你還需要額外的投票。這是SO的方式來說聲謝謝。快樂編碼! – Shnugo