如何在 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,那么我希望它是红色的......我已经尝试输入 <font color="">
标签,但它只更改标题(在 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 应用程序?