0
你好从SQL nO0b,
我有三个Select
语句我想加入:添加文本FOR XML SQL SELECT语句
选择2是FOR XML
选择,我想追加选择1 & 3(它只是显示一些文本)作为一种页眉/页脚。
所有三种选择按照预期工作,并形成一个很好形成的播客.xml的三个部分,但我需要它们在一个结果中结束,因此我最终可以将它保存到一个.xml文件中(这将是我的下一个头痛,我想)。
我试过+
,UNION
,JOIN
的排列,我的经验不足的头脑可以想出,但无济于事。
选择#1(只是一些文本)
Select '<?xml version=''1.0''?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
<channel>
<atom:link href="http://www.mysite.com/podcast/podcast.xml" rel="self" type="application/rss+xml" />
<itunes:image href="http://www.mysite.com/Portals/0/Images/Audio/podcast_logo.jpg"/>
<link>http://www.mysite.com/Audio.aspx</link>
<title>My Podcast</title>
<description>My Podcast's Description</description>
<language>en-us</language>
<copyright>© 2010</copyright>
<itunes:subtitle>Subtitle</itunes:subtitle>
<itunes:owner>
<itunes:name>Name</itunes:name>
<itunes:email>[email protected]</itunes:email>
</itunes:owner>
<itunes:category text="Religion & Spirituality">
<itunes:category text="Christianity" />
</itunes:category>
<itunes:explicit>No</itunes:explicit>
<ttl> 120 </ttl>'
选择#2(我的数据)
Select
(Select Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 305 and UserDefinedRowId = item.UserDefinedRowId) as [title]
,(Select 'Today''s Program is ' + Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 305 and UserDefinedRowId = item.UserDefinedRowId) as [description]
,(Select Cast(Cast(FieldValue as nvarchar(max)) as DateTime) from dbo.UserDefinedData where UserDefinedFieldId = 306 and UserDefinedRowId = item.UserDefinedRowId) as [pubdate]
,(Select 'http://www.mysite.com/Portals/0/AudioFiles/RadioArchives/' + Cast(FieldValue as nvarchar(max)) from dbo.UserDefinedData where UserDefinedFieldId = 308 and UserDefinedRowId = item.UserDefinedRowId) as [guid]
From
dbo.UserDefinedRows item
Where
ModuleId = 820
and UserDefinedRowID in (select UserDefinedRowID from UserDefinedData where UserDefinedFieldID = 306 and Cast(Cast(FieldValue as nvarchar(max)) as DateTime) between '2010-Nov-11' and '2010-Nov-18')
Order By
[pubdate] DESC
for XML AUTO,ELEMENTS
选择#3(以上文字)
Select '</channel>
</rss>'
(我正在使用MS SQLSMS 2008.) (第二个select语句的复杂性质是由于它正在从DotNetNuke“用户定义表/表格&列表”中检索数据,该列表必须首先被“展平” )
任何帮助将不胜感激,谢谢。
这样做。你已经救了我许多小时的挫折。谢谢!我已经发布了另一个关于什么看起来是这个项目的最后一个问题(关于DATETIME)的问题:http://stackoverflow.com/questions/4228335/displaying-a-cast-datetime-in-rfc822-format (Also ,出于好奇,为什么@ V2使用“设置”而不是“选择”?) – JDV 2010-11-19 18:53:17
因为如果我记得正确,选择@ V2 = ...对于Xml自动不起作用。 – Stu 2010-11-19 19:14:49