2012-12-31 39 views
0

执行下面的查询xml auto或xml路径?

SELECT  AssessmentFileGUID as '@FileId',AssessmentFileTypeId as '@FileTypeId',AssessmentFileName 
FROM   rat.AssessmentFile where AssessmentId=17 
for xml path('File'),root('Files') 

给了我下面的结果:

<Files> 
    <File FileId="2A23D836-612F-418E-BDE8-F182C5432A0D" FileTypeId="1"> 
    <AssessmentFileName>File-123213.pdf</AssessmentFileName> 
    </File> 
    <File FileId="CDA853B9-C587-4365-BAF5-972F8D217BAC" FileTypeId="2"> 
    <AssessmentFileName>File-343455.png</AssessmentFileName> 
    </File> 
</Files> 

不过,我需要它的格式如下:

<Files> 
    <File FileId="2A23D836-612F-418E-BDE8-F182C5432A0D" FileTypeId="1">File-123213.pdf</File> 
    <File FileId="CDA853B9-C587-4365-BAF5-972F8D217BAC" FileTypeId="2">File-343455.png</File> 
</Files> 

回答

2

指定应该为内容作为data()列,它应该在正确的地方去:

declare @T table (
    AssessmentFileGUID uniqueidentifier not null, 
    AssessmentFileTypeId int not null, 
    AssessmentFileName varchar(max) not null, 
    AssessmentId int not null 
) 
insert into @T(AssessmentFileGUID,AssessmentFileTypeId,AssessmentFileName, 
    AssessmentId) values 
('2A23D836-612F-418E-BDE8-F182C5432A0D',1,'File-123213.pdf',17), 
('CDA853B9-C587-4365-BAF5-972F8D217BAC',2,'File-343455.png',17) 

SELECT  AssessmentFileGUID as '@FileId',AssessmentFileTypeId as '@FileTypeId', 
    AssessmentFileName as 'data()' //Change here 
FROM   @T where AssessmentId=17 
for xml path('File'),root('Files') 

结果:

<Files> 
    <File FileId="2A23D836-612F-418E-BDE8-F182C5432A0D" FileTypeId="1">File-123213.pdf</File> 
    <File FileId="CDA853B9-C587-4365-BAF5-972F8D217BAC" FileTypeId="2">File-343455.png</File> 
</Files> 
1

不知道,但尝试这个

SELECT  
    AssessmentFileGUID as '@FileId', 
    AssessmentFileTypeId as '@FileTypeId', 
    AssessmentFileName as "File/text()" 
FROM   
    rat.AssessmentFile 
where 
    AssessmentId = 17 
FOR XML PATH('File'), ROOT('Files') 
+0

,让我 <文件的fileid =” 2A23D836-612F-418E-BDE8-F182C5432A0D“FileTypeId =”1“> 欢迎使用HDFC Bank NetBanking-4-12-12.pdf <文件的fileid = “CDA853B9-C587-4365-BAF5-972F8D217BAC” FileTypeId = “2”> Ipad_safari,文件上传,issue.png

+1

对不起比拉尔了错误的答案,我不确定一下,但是你可以试试这个 SELECT AssessmentFileGUID as'File/@ FileId',AssessmentFileTypeId as'File/@ FileTypeId',AssessmentFileName as'File/text()“ FROM rat.AssessmentFile其中AssessmentId = 17 for xml路径('文件') – Manibhadra

+0

谢谢!但这工作对我来说: AssessmentFileName as'data() 谢谢你的尝试! :) –