2014-10-30 118 views
0

我是这样一个noob,对我来说,这看起来应该很简单,但我已经掏出了我的最后一根头发,试图找出它。SQL VIEW格式化XML字段类型

SQL视图返回

  • Announcements
  • tp_ColumnSet
  • 类型XML

数据:

<datetime1>2014-11-06T08:00:00</datetime1> 
<ntext2>&lt;div class="ExternalClass92FCE11907AF41979E054BE04236CCBE"&gt;&lt;p&gt;Open Enrollment Meeting Wednesday, November 5th at 2pm. John Doe will be here to go over our 2014-2015 Medical/Dental &amp;amp; Life Insurance plans and our 401K Plan. We will also have a representative from Joe Medical joining us. Please plan to attend!&lt;/p&gt;&lt;/div&gt;</ntext2> 
<nvarchar1>Open Enrollment Meeting</nvarchar1> 

我我试图在下午视图

字段标题

公开注册会议

场体

公开注册会议周三,11月5日来显示。 John Doe将会在这里回顾我们2014-2015年的医疗/牙科& amp;人寿保险计划和我们的401K计划。我们也将有Joe Medical的代表加入我们。请计划参加!

回答

0

您可以通过其value()方法从XML字段中提取节点。您基本上为您感兴趣的节点提供了一个XQuery,以及它应该返回的首选SQL类型。

select tp_ColumnSet.value('(/data/datetime1)[1]', 'datetime') as TheDate 
    , tp_ColumnSet.value('(/data/nvarchar1)[1]', 'nvarchar(200)') as TheTitle 
    , tp_ColumnSet.value('(/data/ntext2)[1]', 'nvarchar(max)') as TheBody 
from Announcements 

请注意,我还承担了根节点是<data>,所以你可能需要调整代码以适应。

这将返回:

2014-11-06 08:00:00.000 
Open Enrollment Meeting 
<div class="ExternalClass92FCE11907AF41979E054BE04236CCBE"><p>Open Enrollment Meeting Wednesday, November 5th at 2pm. John Doe will be here to go over our 2014-2015 Medical/Dental &amp; Life Insurance plans and our 401K Plan. We will also have a representative from Joe Medical joining us. Please plan to attend!</p></div> 
+0

只需要找到我的根节点现在我认为。查询正在运行NULL – SOCALNoob 2014-10-30 17:04:00

+0

您是否根据''上的注释更新了XQuery以匹配您的XML结构?我的回答假设其' ... ... ...' – chrisb 2014-10-30 17:05:56

+0

谢谢....明白了,一旦我设置节点! – SOCALNoob 2014-10-30 17:11:04