在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
沒有留言:
張貼留言