`
wyf
  • 浏览: 433336 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

sql to xml

    博客分类:
  • SQL
 
阅读更多

SQL Server FOR XML PATH 语句的应用

在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例。

1
2
3
4
5
DECLARE @TempTable table(UserID int , UserName nvarchar(50));
insert into @TempTable (UserID,UserName) values (1,'a')
insert into @TempTable (UserID,UserName) values (2,'b')
  
select UserID,UserName from @TempTable FOR XML PATH
运行这段脚本,将生成如下结果:
1
2
3
4
5
6
7
8
<row>
  <UserID>1</UserID>
  <UserName>a</UserName>
</row>
<row>
  <UserID>2</UserID>
  <UserName>b</UserName>
</row>
1
大家可以看到两行数据生成了两个节点,修改一下PATH的参数:
1
select UserID,UserName from @TempTable FOR XML PATH('lzy')

再次运行上述脚本,将生成如下的结果:

1
2
3
4
5
6
7
8
<lzy>
  <UserID>1</UserID>
  <UserName>a</UserName>
</lzy>
<lzy>
  <UserID>2</UserID>
  <UserName>b</UserName>
</lzy>
1
可以看到节点变成,其实PATH() 括号内的参数是控制节点名称的,这样的话大家可以看一下如果是空字符串(不是没有参数)会是什么结果?
1
select UserID,UserName from @TempTable FOR XML PATH('')

执行上面这段脚本将生成结果:

1
2
3
4
<UserID>1</UserID>
<UserName>a</UserName>
<UserID>2</UserID>
<UserName>b</UserName>

这样就不显示上级节点了,大家知道在 PATH 模式中,列名或列别名被作为 XPath 表达式来处理,也就是说,是列的名字,这样大胆试验一下不给指定列名和别名会是怎么样?

1
select CAST(UserID AS varchar) + '',UserName + '' from @TempTable FOR XML PATH('')

 

运行上面这句将生成结果

1a2b

所有数据都生成一行,而且还没有连接字符,这样的数据可能对大家没有用处,还可以再变化一下:

1
select CAST(UserID AS varchar) + ',',UserName + '',';' from @TempTable FOR XML PATH('')

 

生成结果

1,a;2,b;

大家现在明白了吧,可以通过控制参数来生成自己想要的结果,例如:

 

1
select '{' + CAST(UserID AS varchar) + ',','"' +UserName + '"','}' from @TempTable FOR XML PATH('')

 

生成结果

{1,"a"}{2,"b"}

还可以生成其他格式,大家可以根据自己需要的格式进行组合。

下面是一个数据统计的应用,希望大家可以通过下面的实例想到更多的应用

 

1
2
3
4
5
6
7
8
9
10
11
12
13
DECLARE @T1 table(UserID int , UserName nvarchar(50),CityName nvarchar(50));
insert into @T1 (UserID,UserName,CityName) values (1,'a','上海')
insert into @T1 (UserID,UserName,CityName) values (2,'b','北京')
insert into @T1 (UserID,UserName,CityName) values (3,'c','上海')
insert into @T1 (UserID,UserName,CityName) values (4,'d','北京')
insert into @T1 (UserID,UserName,CityName) values (5,'e','上海')
  
SELECT B.CityName,LEFT(UserList,LEN(UserList)-1) FROM (
SELECT CityName,
    (SELECT UserName+',' FROM @T1 WHERE CityName=A.CityName  FOR XML PATH('')) AS UserList
FROM @T1 A
GROUP BY CityName
) B

 

生成结果(每个城市的用户名)

北京 b,d
上海 a,c,e

分享到:
评论

相关推荐

    sql_xml.rar_.sql文件数据表_sql to xml_xml 数据库

    本主题围绕“sql_xml.rar”展开,我们将深入探讨如何将SQL中的数据表转换为XML文件,以及这一过程中的关键知识点。 首先,我们来看`.sql`文件。这是一种文本文件,通常包含了SQL语句,用于创建、修改或查询数据库。...

    SQL to XML

    通过这个可执行的文件,写入SQL语句然后查询出来数据自动生成XML格式,并可以提供给FTvantagepoint中dashboard动态数据连接,这样就可以在不配置ASP服务器的情况下实现dashboard的SQL查询关系数据库。

    LINQ教程中文版(LINQ TO SQL ,LINQ TO XML)

    本教程主要涵盖了两个核心部分:LINQ to SQL 和 LINQ to XML,都是针对不同类型数据源进行查询的工具。 ### LINQ to SQL LINQ to SQL 是一种对象关系映射(ORM)框架,允许开发者使用C#或VB.NET语言直接对SQL...

    sqlserver to XML

    以下是对"sqlserver to XML"这个主题的详细说明: 一、XML的基本概念 XML是一种自描述的文本格式,它使用标签来定义数据结构。与HTML不同,XML设计用于存储和传输数据,而不是显示数据。XML文档包含元素、属性、...

    linq to sql 、linq to xml 、linq to object

    在.NET环境中,LINQ主要分为三个主要部分:LINQ to SQL、LINQ to XML和LINQ to Objects。 1. **LINQ to SQL**: LINQ to SQL 是一种数据访问技术,它允许开发者使用C#或VB.NET的查询语法直接对SQL Server数据库...

    Hyfud HTTP to SQL to XML translator-开源

    Hyfud是一个开源项目,它的主要功能是作为一个HTTP到SQL再到XML的转换器。这个工具设计用于接收HTTP请求,无论是GET还是POST,然后将其转换成SQL查询语句。这一过程的目的是为了能够从数据库中获取数据,使得Web应用...

    Linq 大全 Linq To Sql Linq To DataSet Linq To Object Linq to Xml

    在标题和描述中提到的"Linq To Sql"、"Linq To DataSet"、"Linq To Object"和"Linq To Xml"是LINQ的四种主要应用方式,分别用于SQL数据库、DataSet、内存中的对象以及XML数据的查询。 1. **LINQ to SQL**: LINQ ...

    精通LINQ LINQ to XML

    《精通LINQ LINQ to XML》是一本专为开发者深入理解和掌握LINQ(Language Integrated Query,语言集成查询)技术,特别是LINQ to XML部分而编写的权威指南。这本书结合了LINQ的基础、进阶和实战应用,是学习LINQ的...

    LINQ中文教程(LINQ to Object、SQL、XML)

    本教程将深入探讨LINQ的各个方面,特别是`LINQ to Object`、`LINQ to SQL`和`LINQ to XML`。 ### LINQ to Object `LINQ to Object`是LINQ的基础,它允许我们对任何实现了`IEnumerable`或`IQueryable`接口的对象...

    LInq入门宝典 Linq To Xml linq to sql

    **LInq入门宝典:LInq To Xml与Linq To Sql详解** LInq(Language Integrated Query,语言集成查询)是.NET框架中的一个重要特性,它为C#和VB.NET提供了内建的查询能力,使得数据查询变得更加简洁、直观。LInq包括...

    SQL链接和操作XML文件

    SQL Server 2005及后续版本开始引入了对XML的内置支持,包括XML数据类型、XML索引和XML函数等。XML数据类型允许你直接在数据库中存储XML文档,并可以像处理其他数据类型一样进行查询和操作。 1. **XML数据类型**:...

    LINQ实战 linq to sql linq to xml 人民邮电出版社

    本书部分介绍了LINQ技术及C#和VB为此提供的新语言特性,第二、三、四部分详细介绍了LINQ的主要功能LINQ to Objects、LINQ to SQL、LINQ to XML,第五部分研究了LINQ的可扩展性、在应用程序中使用各种LINQ功能的方法...

    C# xml导入sql

    例如,`XmlDocument`或`XDocument`类可以用来加载XML文件,然后通过XPath或LINQ to XML查询来提取所需的数据。 2. **接口(Interface)**: 在C#中,接口定义了一组方法签名,但不提供实现。在这里,`ISetProvider...

    LINQ to XML操作XML的代码,通过它很快掌握用内存在对象方式操作XML数据

    LINQ (Language Integrated Query) 是.NET框架中引入的一项强大功能,它允许开发者使用类似SQL的查询语法在各种数据源上进行操作,包括XML。LINQ to XML是LINQ的一个子集,专门用于处理XML文档。它提供了一种更加...

    Linq入门教程 Linq To Sql(XMl)

    Linq 教程Linq To Xml 和Linq To Sql

    linq to xml入门的例子

    在实际项目中,结合其他LINQ技术,如LINQ to SQL或LINQ to Objects,可以构建出强大的数据处理解决方案。对于初学者,可以从创建简单的XML文档开始,逐步深入学习其查询和操作功能,以全面理解并掌握LINQ to XML的...

    LINQ TO XML

    LINQ to XML 可以很好地与其他LINQ技术(如LINQ to Objects、LINQ to SQL)结合,实现数据的无缝转换和处理。例如,可以将数据库查询结果直接转换为XML,或将XML数据映射到对象模型。 ### 七、示例代码(Console...

    linq to xml 增,删,改,查

    "LINQ to XML"是LINQ的一个子集,专门用于处理XML文档。它提供了更简洁、类型安全且高效的XML编程模型,使得在.NET环境中操作XML变得更加简单。 在"LINQ to XML"中,我们主要会接触到以下几个核心概念: 1. **...

    xml在sql_server_2008中的应用

    ### XML在SQL Server 2008中的应用详解 #### 一、XML简述 XML (Extensible Markup Language),即可扩展标记语言,是一种用于存储和传输数据的标准格式。它与HTML不同,HTML主要用于网页展示,而XML则更多地被用于...

    LINQ_to_sql详细教程

    **LINQ to SQL 详细教程** LINQ (Language Integrated Query) 是 .NET Framework 中的一项技术,它允许开发者使用类似 SQL 的语法在各种数据源上进行查询,包括对象集合、XML、SQL 数据库等。其中,LINQ to SQL 是...

Global site tag (gtag.js) - Google Analytics