在 SQL 请求中生成具有多个属性的 HTML 标记

ash*_*kov 1 html xml sql t-sql sql-server

您能否帮助我了解如何生成具有多个属性的 XML/HTML

我有这个 SQL 代码

select
    [td/@align] = 'center', td = format(GETDATE(),'dd.MM.yyyy'), null
for xml path('tr')
Run Code Online (Sandbox Code Playgroud)

此代码作为其结果返回:

<tr>
  <td align="center">16.09.2020</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

我需要

<tr>
  <td align="center" style="background-color: red;">16.09.2020</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

无法找到如何做到这一点...

如果我尝试使用这样的东西[td/@align/@style]- SQL 导致错误

列名“td/@align/@style”包含 FOR XML 要求的无效 XML 标识符;'@'(0x0040) 是第一个出错的字符

got*_*tqn 5

你在找这个吗:

select 'center' AS [td/@align]
       ,'background-color: red;'  AS [td/@style]
       ,format(GETDATE(),'dd.MM.yyyy') AS [td]       
for xml path('tr')
Run Code Online (Sandbox Code Playgroud)

它产生了这个:

<tr>
    <td align="center" style="background-color: red;">16.09.2020</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

您可以将一行列视为 xml 标记值和属性,它们使用别名进行分组AS。因此,对于更多属性,只需添加具有相应别名的新值 - td/@...