You can create an HTML Table with SQL. You make use of the ‘FOR XML RAW’ and ‘FOR XML PATH’ statements to organize the Table Body (TBODY), Table Header (THEAD) and Table Footer (TFOOT). The following SQL produces the HTML shown at the bottom of this post (obviously I have formatted the HTML myself for your clarity).
SELECT (SELECT 'SQL HTML Table Example' FOR XML PATH(''),TYPE) AS 'CAPTION', (SELECT 'HeaderCell1' AS TH, 'HeaderCell2' AS TH FOR XML RAW('TR'),ELEMENTS, TYPE) AS 'THEAD', (SELECT 'FooterCell1' AS TH, 'FooterCell2' AS TH FOR XML RAW('TR'),ELEMENTS, TYPE) AS 'TFOOT', (SELECT F.Cell1 AS TD, F.Cell2 AS TD FROM (VALUES ('Cell1', 'Cell2'), ('Cell3', 'Cell4'), ('Cell5', 'Cell6'), ('Cell7', 'Cell8') ) F(Cell1, Cell2) FOR XML RAW('TR'), ELEMENTS, TYPE ) AS 'TBODY' FOR XML PATH(''), ROOT('TABLE')
Produces the following HTML:
SQL HTML Table Example HeaderCell1 HeaderCell2FooterCell1 FooterCell2Cell1 Cell2Cell3 Cell4Cell5 Cell6Cell7 Cell8