T-sql for xml path使用
用法: FOR XML PATH 方法是用于将查询结果集以XML形式展示
sql:
select top 5 p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[ContactType] p for xml path
显示结果:
<row> <ContactTypeID>1</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Accounting Manager</Name> </row> <row> <ContactTypeID>2</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Assistant Sales Agent</Name> </row> <row> <ContactTypeID>3</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Assistant Sales Representative</Name> </row> <row> <ContactTypeID>4</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Coordinator Foreign Markets</Name> </row> <row> <ContactTypeID>5</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Export Administrator</Name> </row>
path的用法:用来指定行结点,如果不指定行节点,默认使用'row',
sql:
select top 5 p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[ContactType] p for xml path('AA')
显示结果:
<AA> <ContactTypeID>1</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Accounting Manager</Name> </AA> <AA> <ContactTypeID>2</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Assistant Sales Agent</Name> </AA> <AA> <ContactTypeID>3</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Assistant Sales Representative</Name> </AA> <AA> <ContactTypeID>4</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Coordinator Foreign Markets</Name> </AA> <AA> <ContactTypeID>5</ContactTypeID> <ModifiedDate>2002-06-01T00:00:00</ModifiedDate> <Name>Export Administrator</Name> </AA>
下来来利用 for xml path 输出结果就是一行字符串,如果去掉行节点就可以把整列的结果输出一行,
sql :
select top 5 '['+ p.Name+']' from [Person].[ContactType] p for xml path('')
显示结果: [Accounting Manager][Assistant Sales Agent][Assistant Sales Representative][Coordinator Foreign Markets][Export Administrator]
这个可用来 一行来显示明细表中的信息,通常主表和细表是一对多的关系,把细表中的多用 for xml path 输出为一列,加到主表中一起输出。
作者:逐帆
出处:http://www.cnblogs.com/langhua/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。