Dan*_*iel 5 t-sql sql-server for-xml-path
我正在构建一些HTML以包含在电子邮件正文中并使用sp_send_dbmail发送.我想对齐一些列.有没有一种简单的方法可以做到这一点(没有使用FOR XML EXPLICIT重写它)?
declare @html varchar(max)
set @html = '<table cellpadding=0 cellspacing=0 border=0>'
set @html +=
cast(
(select
'Column1' as td, '',
'Column2' as td, '',
'Column3' as [td align=right] /* Would like to do something like this */
for xml path('tr')) as varchar(max)
)
set @html += '</table>'
Run Code Online (Sandbox Code Playgroud)
Joe*_*lli 12
这应该做到这一点.请注意,您无需手动将<tr>
和</tr>
标记添加到html字符串中.那些是作为你的一部分给你的for xml path('tr')
.你可能想要添加 </table>
到最后.
declare @html varchar(max)
set @html = '<table cellpadding=0 cellspacing=0 border=0>'
set @html +=
cast(
(select
'Column1' as td, '',
'Column2' as td, '',
'right' as [td/@align], 'Column3' as td, ''
for xml path('tr')) as varchar(max)
)
set @html += '</table>'
select @html
Run Code Online (Sandbox Code Playgroud)
输出是:
<table cellpadding=0 cellspacing=0 border=0><tr><td>Column1</td><td>Column2</td><td align="right">Column3</td></tr></table>
Run Code Online (Sandbox Code Playgroud)