如何在 SQL Server 2012 中使用 html 更改表格中特定单元格的颜色?

Posted

技术标签:

【中文标题】如何在 SQL Server 2012 中使用 html 更改表格中特定单元格的颜色?【英文标题】:How can I change the color of a specific cell in a table using html in SQL server 2012? 【发布时间】:2014-11-10 22:06:15 【问题描述】:

我在我的 SQL 脚本中使用 html 代码从电子邮件中的表格输出结果,但如果任何结果以特定字符串的形式返回,我需要更改文本的颜色。这是我用来生成表格的 sn-p:

'<table border="2">' + 
                      '<tr>
                          <th>No#</th>
                          <th>SERVER NAME</th> 
                          <th>SERVER IP</th>
                          <th>STATUS </th>
                      </tr>' +
                      CAST (( SELECT DISTINCT
                               td = [NUMBER],                              '',
                               td = [SERVER NAME],                         '',
                               td = [SERVER IP],                           '',
                               td = [STATUS],                   ''
                          FROM SUMMARY
                      FOR XML PATH('tr'), TYPE 
                          ) AS VARCHAR(MAX) ) +
'</table>';

所以我担心“状态”字段,如果它返回 SUCCESS,它可以保持为常规文本,如果它显示 BAD,那么我希望它是红色的......我已经尝试输入 &lt;font color=""&gt;标签,但它只更改标题(在 TH 标签之间)..

No# SERVER NAME SERVER IP   STATUS  
1   SERVER1     10.10.10.1  BAD         --this should be red
2   SERVER2     10.10.10.2  SUCCESS 
3   SERVER3     10.10.10.3  BAD         --this should be red
4   SERVER4     10.10.10.4  SUCCESS 

【问题讨论】:

SQL 不是一种前端语言,不应作为一种语言使用。您应该使用 php 条件根据字符串更改字体颜色。 STATUS 应该只是 BAD,或者更好:1/0。 【参考方案1】:

就像评论者指出的那样,您真的不应该这样做。如果你真的想这样做,你需要在查询之外进行,因为 SQL 会将所有查询数据视为文本并转义 HTML 字符以便将它们显示为文本。

一个简单(但“丑陋”)的解决方案是像这样简单地进行替换:

REPLACE('<table border="2">' + 
                  '<tr>
                      <th>No#</th>
                      <th>SERVER NAME</th> 
                      <th>SERVER IP</th>
                      <th>STATUS </th>
                  </tr>' +
                  CAST (( SELECT DISTINCT
                           td = [NUMBER],                              '',
                           td = [SERVER NAME],                         '',
                           td = [SERVER IP],                           '',
                           td = [STATUS],                   ''
                      FROM SUMMARY
                  FOR XML PATH('tr'), TYPE 
                      ) AS VARCHAR(MAX) ) +
'</table>', '>BAD<', '><font color="red">BAD</font><')

【讨论】:

谢谢,它确实有点丑,但它有效!

以上是关于如何在 SQL Server 2012 中使用 html 更改表格中特定单元格的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2012 中使用 html 更改表格中特定单元格的颜色?

在 SQL Server 2012 中缓存并进行查询 - 我可以假设啥以及如何使用此缓存?

如何在 SQL Server 2012 中使用 TRUNC 函数,因为我得到 'TRUNC' 不是一个公认的内置函数名称。'?

如何在 Visual Studio 2012 中使用 SQL Server Express 2008 部署 wpf 应用程序?

如何查看sql server 2012是不是激活?在哪里查看?急求呀

SQL server 2012 查询迁移