Html ; 去

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

-内联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类放置到,和

-清理

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;