【发布时间】:2017-06-08 11:35:09
【问题描述】:
这是我的 XML
<plan>
<prescription>
<name>ABC</name>
<frequency>Daily</frequency>
<dailyfrequency>
<morning>2</morning>
<afternoon></afternoon>
<night>1</night>
</dailyfrequency>
</prescription>
<prescription>
<name>EDF</name>
<frequency>Daily</frequency>
<dailyfrequency>
<morning>5</morning>
<afternoon>5</afternoon>
<evening>4</evening>
<night>1</night>
</dailyfrequency>
<dayfrequency></dayfrequency>
</prescription>
<prescription>
<name>YTER</name>
<frequency>Weekly</frequency>
<dailyfrequency>
<morning>5</morning>
<afternoon>5</afternoon>
<evening>4</evening>
<night>1</night>
</dailyfrequency>
<dayfrequency>Monday,Tuesday,Wednesday</dayfrequency>
</prescription>
</plan>
我使用交叉连接进行如下查询
PLAN= STUFF(XMLData.query('for $a in
(*:ClinicalDocuments/Visits/Visit/prescriptions/prescription)
return <a>{concat("$", $a)}</a>').value('.', 'NVARCHAR(MAX)'), 1, 1, '')
但是我的结果会这样显示
**PLAN**
ABCDaily21$EDFDaily5541$YTERWeekly5541Monday,Tuesday,Wednesday
但我真的很想像下面这样(假设$-处方内每个标签的分隔符,!-列分隔符每个处方本身)
**PLAN**
ABC$Daily$2$0$0$1$0!EDF$Daily$5$5$4$1$0!YTER$Weekly$5$5$4$1$Monday,Tuesday,Wednesday
请任何人在这里帮助我!
(注意:某些子标签可能不存在,即表示它没有值)
非常感谢,Jayendran
【问题讨论】:
标签: sql-server xml tsql xpath xquery