我正在向多个邮件发送查询结果以进行管理搜索。
输出结构不合理
我希望输出更有条理,并且比现在更好。
我该怎么做?
PS:我试图使用'cast'但是put put仍然是相同的
答案 0 :(得分:1)
SQL Server是一个数据管理系统,你也不能依靠sql server来呈现数据,对于数据展示你应该使用适当的工具,某种报告工具,如SSRS,QlikView或tableau等。
无论如何,您可以从sql server查询中动态创建一些html,并在您的电子邮件正文中使用该HTML。
Declare @t table (Asset_Name VARCHAR(100), Expire_Date DATE)
INSERT INTO @t VALUES
('Fortigate100D' , '2016-09-01'),
('Test' , '2016-09-15')
Declare @htmlBody nvarchar(max);
SET @htmlBody = N'<table border="1">
<tr>
<th>Asset_Name</th>
<th>Expire_Date</th>
</tr>'
SELECT @htmlBody + CAST ( (
SELECT td = CAST(ISNULL(Asset_Name,'') AS VARCHAR(100)),'',
td = ISNULL(CONVERT(VARCHAR(10) ,Expire_Date,120),''),''
FROM @t
ORDER BY Asset_Name
FOR XML PATH('tr'), TYPE) AS NVARCHAR(MAX) ) + '</table>'
PRINT @htmlBody
将创建html表,并在浏览器中显示它......
<table border="1">
<tr>
<th>Asset_Name</th>
<th>Expire_Date</th>
</tr>
<tr>
<td>Fortigate100D</td>
<td>2016-09-01</td>
</tr>
<tr>
<td>Test</td>
<td>2016-09-15</td>
</tr>
</table>