2013-10-31 62 views
1

我有一個表:如何將select語句結果轉換爲SQL Server中的HTML表格?

Select A, B, C 
FROM Table 
WHERE Z = P 
AND Y = N 

我想捕捉的結果,並創建一個HTML表出來的,因爲這樣的:

DECLARE @HTMLTable VARCHAR(MAX) 

@HTMLTable = ??? 

A B C 
xx xxx xxxxx 
x xx x 
xx x xxx 

等。

原因是因爲我想通過電子郵件發送這個HTML表格。

我該如何去做這件事?

+0

參見:http://stackoverflow.com/questions/7265494/sql-server-send-email –

+1

我知道如何發送電子郵件......我試圖找出如何將SQL結果集轉換爲HTML表格 –

回答

6

使用FOR XML PATH(從這裏的其他人那裏瞭解到)。是這樣的:

SET @tableHTML = 
N'<table>' + 
N'<tr><th>SpecialOfferID</th> 
<th>Description</th> 
<th>Type</th> 
<th>Category</th> 
<th>StartDate</th> 
<th>EndDate</th> 
</tr>' + 
CAST ((
SELECT td = CAST([SpecialOfferID] AS VARCHAR(100)),'', 
td = [Description],'', 
td = [Type],'', 
td = [Category] ,'', 
td = CONVERT(VARCHAR(30),[StartDate],120) ,'', 
td = CONVERT(VARCHAR(30),[EndDate],120) 
FROM [AdventureWorks].[Sales].[SpecialOffer] 
ORDER BY [SpecialOfferID] 
FOR XML PATH('tr'), TYPE 
) AS NVARCHAR(MAX)) + 
N'</table>' 
+0

它將所有內容(對於一行)放在一個單獨的​​中,如果我刪除,',請你幫我理解爲什麼,如果你知道? – Mzn

+0

很好的答案。任何方式以通用的方式完成該任務? – bashan

0
create table #table (
    a varchar(50), 
    b varchar(50), 
    c varchar(50) 
) 
insert into #table values 
    ('xx','xxx','xxxx'), 
    ('aaa','b','cc'), 
    ('xxxx','xx','xx xxxx') 
go 
DECLARE @HTMLTable VARCHAR(MAX) 

set @HTMLTable = '<table><thead><tr><th>a</th><th>b</th><th>c</th></tr></thead><tbody>' 

select @HTMLTable += '<tr><td>'+a+'</<td><td>'+b+'</<td><td>'+c+'</<td></tr>' 
from #table 

set @HTMLTable+='</tbody></table>' 

print @HTMLTable 
相關問題