Html ; 去
-内联CSS便于格式化 声明@inlineCSS XML= 不 低的 { 颜色:黑色; 背景色:红色; } 相同的 { 颜色:黑色; 背景颜色:黄色; } 高的 { 颜色:白色; 背景颜色:蓝色; } 表,th { 边框:1px纯黑; } '; -这是实际的查询 选择@inlineCSS ,dbo.CreateHTMLTable 选择 当ISNULLq1,0>ISNULLq2,0然后为“低”时的情况 否则,当ISNULLq2,0>ISNULLq1,0时,则为“高” 否则“一样” 终止 以[@class]结束 ,名称为物料 ,ISNULLq1,0为[Q1] ,ISNULLq2,0为[Q2] 从节奏 对于XML路径“行”,元素XSINIL、NULL、NULL、NULL 对于XML路径'body',根'html'; -提示:使用类名而不是三个,NULL,NULL,NULL允许将常规CSS类放置到,和 -清理Html ; 去,html,sql-server,xml,tsql,colors,Html,Sql Server,Xml,Tsql,Colors,-内联CSS便于格式化 声明@inlineCSS XML= 不 低的 { 颜色:黑色; 背景色:红色; } 相同的 { 颜色:黑色; 背景颜色:黄色; } 高的 { 颜色:白色; 背景颜色:蓝色; } 表,th { 边框:1px纯黑; } '; -这是实际的查询 选择@inlineCSS ,dbo.CreateHTMLTable 选择 当ISNULLq1,0>ISNULLq2,0然后为“低”时的情况 否则,当ISNULLq2,0>ISNULLq1,0时,则为“高” 否则“一样” 终止 以[@cl
GO
DROP TABLE #tempo
GO
DROP FUNCTION dbo.CreateHTMLTable;
这是单击Run查看输出的结果
低的
{
颜色:黑色;
背景色:红色;
}
相同的
{
颜色:黑色;
背景颜色:黄色;
}
高的
{
颜色:白色;
背景颜色:蓝色;
}
表,th
{
边框:1px纯黑;
}
布料
Q1
问题2
低的
10
5.
相同的
10
10
高的
10
20
这是表示层的事情。您应该使用sql返回数据。然后在前端构建您的html,包括样式。我使用此查询通过电子邮件通过processGotcha发送它。然后,您必须在每一行上添加样式信息。可能需要编写一些sql来创建行信息,而不是使用XML路径,因为您需要在相当详细的级别上进行控制。您应该使用sql返回数据。然后在前端构建您的html,包括样式。我使用此查询通过电子邮件通过processGotcha发送它。然后,您必须在每一行上添加样式信息。可能需要编写一些sql来创建行信息,而不是使用XML路径,因为您需要在一个非常详细的级别上控制它。您可能会遇到一个问题,我想有一种方法可以将其强制转换到XML中,我想您就是解决这个问题的人。干得好,先生。@SeanLange事实上你用你的解决方案击败了我。我的解决方案发布得更快,但你的技术我不熟悉如何使用XML。我对xml没有做太多的实际工作,所以除了基本的构建分隔字符串类型之外,我的印章几乎不存在。@SeanLange我遵循Snugo。。。有人可能会说:@Shnugo请原谅打字错误。我们都知道我在说谁。不久前,我看到了你的链接答案,然后是完全披露。。。FLWOR让我头疼。你是对的,我本应该对TR样式进行说明,或者至少对其进行评论,但我想展示变量TD样式,因此我的第一行。我想有一种方法可以将其压缩到xml中,我想你就是那个能够解决这个问题的人。干得好,先生。@SeanLange事实上你用你的解决方案击败了我。我的解决方案发布得更快,但你的技术我不熟悉如何使用XML。我对xml没有做太多的实际工作,所以除了基本的构建分隔字符串类型之外,我的印章几乎不存在。@SeanLange我遵循Snugo。。。有人可能会说:@Shnugo请原谅打字错误。我们都知道我在说谁。不久前,我看到了你的链接答案,然后是完全披露。。。FLWOR让我头疼。你是对的,我本应该对TR样式进行说明或至少进行评论,但我想演示变量TD样式,因此我的第一行内容是。在这种情况下,通过字符串连接构建XML总是很危险的。。。如果所有的值都是int,就像这里看起来的那样,这可能没问题,但是这种方法在任何情况下都不是最好的。。。我提供了一个函数,可以将任何SELECT转换为HTML表。这种奇怪的更新可能也有一些奇怪的副作用。在这种情况下,通过字符串连接构建XML是非常危险的。。。如果所有的值都是int,就像这里看起来的那样,这可能没问题,但是这种方法在任何情况下都不是最好的。。。我提供了一个函数,可以将任何SELECT转换为HTML表。而且这个古怪的更新可能也有一些奇怪的副作用。
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
CREATE TABLE #tempo(
q1 INT, q2 INT, name VARCHAR(10)
)
INSERT INTO #tempo(q1,q2,name)VALUES(10,5,'low')
INSERT INTO #tempo(q1,q2,name)VALUES(10,10,'same')
INSERT INTO #tempo(q1,q2,name)VALUES(10,20,'high')
DECLARE @html varchar(MAX) = '<table id="tablaPrincipal" border=0>
<tr style="background:#a7bfde;font-weight:bold;">
<td>q1</td>
<td>q2</td>
<td>Compare</td>
</tr>'
SELECT @html = @html + '<tr style="background:' + case when q1 < q2 then 'red' when q1 > q2 then 'blue' else 'yellow' end + ';"><td>' + convert(varchar(10), q1) + '</td><td>' + convert(varchar(10), q2) + '</td></tr>'
FROM #tempo
select @html = @html + '</table>'
select @html
DROP TABLE #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 [td/@style] = 'background:'+choose(sign(q1-q2)+2,'blue;color:white;','yellow','red')
,[td] = isnull(q1,0)
,null
,[td/@style] = 'background:'+choose(sign(q1-q2)+2,'blue;color:white;','yellow','red')
,[td] = isnull(q2,0)
,null
,[td/@style] = 'background:'+choose(sign(q1-q2)+2,'blue;color:white;','yellow','red')
,[td] = name
FROM #tempo
FOR XML PATH('tr')
)
+'</TABLE>'
SELECT @html
GO
DROP TABLE #tempo
GO
DROP FUNCTION dbo.CreateHTMLTable;