iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0
自我挑戰組

IT人員面面觀系列 第 2

[SQL Server]把找到的資料轉成HTML格式

在SQL實務應用上,相信不少人都會把抓出來的特定資料再透過email寄出來吧?

此時如果能轉成HTML格式會更方便閱讀,以下將分享使用FOR XML方式來達成此需求。

--首先建立測試資料
IF OBJECT_ID('#TT','U') IS NOT NULL
 DROP TABLE #TT
CREATE TABLE #TT 
(
   id INT,
   name VARCHAR(20),
   sex char(1),
   memo VARCHAR(50),
   cr_date datetime default(getdate())
)

INSERT INTO #TT 
(id,name,sex,memo)
VALUES
(1,N'John',N'M',N'test11111'),
(2,N'Lee',N'F',N'test22222'),
(3,N'Penny',N'F',N'test33333'),
(4,N'Wade',N'M',N'test444444'),
(5,N'James',N'M',N'test55555')

DECLARE @Content VARCHAR(MAX)
--將所有欄位名稱設成TD,再以''分隔
SET @Content = CAST((SELECT name AS 'TD','',
CASE sex WHEN 'M' THEN '男性' WHEN 'F' THEN '女性' END as 'TD','',
memo AS 'TD',''
FROM #TT
FOR XML PATH('tr'),TYPE) AS VARCHAR(MAX))

DECLARE @HTML VARCHAR(MAX)
SET @HTML='<HTML><BODY><TABLE border=1><TH>姓名</TH><TH>性別</TH><TH>MEMO</TH>'+@Content+'</TABLE>'

SELECT @HTML

產出結果將如下表:

姓名 姓別 MEMO
John 男性 test11111
Lee 女性 test22222
Penny 女性 test33333
Wade 男性 test444444
James 男性 test55555

參考網址:https://docs.microsoft.com/zh-tw/sql/relational-databases/xml/use-path-mode-with-for-xml


上一篇
文章導讀
下一篇
[SQL Server]TempDB的基本調教
系列文
IT人員面面觀28

尚未有邦友留言

立即登入留言