【问题标题】:How to add an attribute to element-centric FOR XML PATH query如何向以元素为中心的 FOR XML PATH 查询添加属性
【发布时间】:2010-09-23 15:07:48
【问题描述】:

我正在构建一些 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>'

【问题讨论】:

    标签: sql-server tsql for-xml-path


    【解决方案1】:

    应该这样做。请注意,您不需要手动将&lt;tr&gt;&lt;/tr&gt; 标记添加到您的html 字符串中。这些是作为for xml path('tr') 的一部分提供给您的。您可能打算将 &lt;/table&gt; 添加到末尾。

    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
    

    输出是:

    <table cellpadding=0 cellspacing=0 border=0><tr><td>Column1</td><td>Column2</td><td align="right">Column3</td></tr></table>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 2014-04-22
    • 2011-02-13
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多