【发布时间】:2018-10-08 13:06:36
【问题描述】:
我已经使用过这种方法,但现在我必须根据值使用一些颜色。所以,我在一个表中有以下信息:
Material | Q1 | Q2
---------+----+-----
M1 | 10 | 5
M2 | 3 | 10
M3 | 15 | 15
当Q1低于Q2时我想染红色,当蓝色和黄色高时是相同的值。
CREATE TABLE #tempo
(
q1 INT, q2 INT, name VARCHAR(10)
)
INSERT INTO #tempo (q1, q2, name)
VALUES (10, 5, 'low'), (10, 10, 'same'), (10, 20, 'high')
--SELECT * FROM #tempo
DECLARE @html varchar(MAX)
SET @html = '<table id="tablaPrincipal" border=0>
<tr style="background:#a7bfde;font-weight:bold;">
<td>q1</td>
<td>q2</td>
<td>Compare</td>
</tr>'+
(
SELECT
isnull(q1,0) AS td
,' ' , isnull(q2,0) AS td
,' ' , name AS td
FROM #tempo
FOR XML PATH('tr')
)
+'</TABLE>'
SELECT @html
DROP TABLE #tempo
我尝试将 td 与另一个标签 tdx 一起使用并像这样替换: SET @html = REPLACE(@html, '', '')
但是,可以根据值动态更改别名吗?
谢谢!
【问题讨论】:
-
这是表示层的东西。您应该使用 sql 返回数据。然后在前端构建你的 html,包括样式。
-
我使用这个查询通过一个进程通过电子邮件发送它
-
明白了。然后你将不得不在每一行添加样式信息。可能需要编写一些 sql 来创建行信息,而不是使用 XML PATH,因为您需要在非常详细的级别上进行控制。
-
你可能有一个look here
标签: html sql-server xml tsql colors