Xml 从sql表生成html

Xml 从sql表生成html,xml,tsql,Xml,Tsql,从这个示例表中是否可以: CREATE TABLE #Actions(EmployeeId INT,EmployeeName VARCHAR(100),ActionStart TIME,ActionEnd TIME,Type VARCHAR(10)); INSERT INTO #Actions(EmployeeId,EmployeeName,ActionStart,ActionEnd, Type) VALUES (1,'Bob','09:00','12:00', 'action'),(1,'Bo

从这个示例表中是否可以:

CREATE TABLE #Actions(EmployeeId INT,EmployeeName VARCHAR(100),ActionStart TIME,ActionEnd TIME,Type VARCHAR(10));
INSERT INTO #Actions(EmployeeId,EmployeeName,ActionStart,ActionEnd, Type)
VALUES (1,'Bob','09:00','12:00', 'action'),(1,'Bob','14:30','16:00', 'action'),(1,'Bob','18:00','20:00', 'event'),(2,'Susan','10:00','12:00', 'action');
要将此输出转换为XML格式

<div class="employee" employeeid="1" employeename="Bob">
    <div class="action" start="09:00" end="12:00" type="action"></div>
    <div class="action" start="14:30" end="16:00" type="action"></div>
    <div class="action" start="18:00" end="20:00" type="event"></div>
</div>
<div class="employee" employeeid="2" employeename="Susan">
    <div class="action" start="10:00" end="12:00" type="action"></div>
</div>

小菜一碟。我从来没有在SQL中使用过XML,也不认为一个简单的子查询就能解决这个问题。谢谢
select 'employee' as '@class',
       a1.EmployeeId as '@employeeid',
       max(a1.EmployeeName) as '@employeename',
       (select 'action' as '@class',
               left(a2.ActionStart, 5) as '@start',
               left(a2.ActionEnd, 5) as '@end',
               a2.Type as '@type'
        from #Actions as a2
        where a1.EmployeeId = a2.EmployeeId
        for xml path('div'), type)
from #Actions as a1
group by a1.EmployeeId
for xml path('div')