繁体   English   中英

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

[英]How can I change the color of a specific cell in a table using html in SQL server 2012?

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

'<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>';

因此,我担心“状态”字段,如果返回“成功”,则可以保留为常规文本,如果显示为“不良”,那么我希望它为红色。...我尝试输入<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会将所有查询数据视为文本,并转义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><')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM