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')