zoukankan      html  css  js  c++  java
  • 数据库学习:for xml path

    一、开发环境

    数据库:SQLServer2012

    二、语法简介

    for xml path它以xml形式展示查询的结果集

    三、语法介绍

    现在数据库中有一张表

    image

    1.基本语法

    select * from Blog_UserInfo for xml path

    运行结果:

    <row>
      <ID>1</ID>
      <Introduce>大家好,我叫金某</Introduce>
      <RealName>金某</RealName>
    </row>
    <row>
      <ID>2</ID>
      <Introduce>大家好,我叫李某</Introduce>
      <RealName>李某</RealName>
    </row>
    <row>
      <ID>3</ID>
      <Introduce>大家好,我叫赵某</Introduce>
      <RealName>赵某</RealName>
    </row>

    2.更改根节点名称

    语法:

    select * from Blog_UserInfo for xml path('UserInfo')

    运行结果:

    <UserInfo>
      <ID>1</ID>
      <Introduce>大家好,我叫金某</Introduce>
      <RealName>金某</RealName>
    </UserInfo>
    <UserInfo>
      <ID>2</ID>
      <Introduce>大家好,我叫李某</Introduce>
      <RealName>李某</RealName>
    </UserInfo>
    <UserInfo>
      <ID>3</ID>
      <Introduce>大家好,我叫赵某</Introduce>
      <RealName>赵某</RealName>
    </UserInfo>

    3.更改列的名字

    语法:

    select ID as 'myID',Introduce as 'myIntrodece',RealName as 'myRealName' from Blog_UserInfo for xml path('UserInfo')

    运行结果:

    <UserInfo>
      <myID>1</myID>
      <myIntrodece>大家好,我叫金某</myIntrodece>
      <myRealName>金某</myRealName>
    </UserInfo>
    <UserInfo>
      <myID>2</myID>
      <myIntrodece>大家好,我叫李某</myIntrodece>
      <myRealName>李某</myRealName>
    </UserInfo>
    <UserInfo>
      <myID>3</myID>
      <myIntrodece>大家好,我叫赵某</myIntrodece>
      <myRealName>赵某</myRealName>
    </UserInfo>

    4.自定义输出格式

    语法:

    select '{'+ltrim(str(ID))+'}'+'['+RealName+']' from Blog_UserInfo for xml path('')

    运行结果:

    {1}[金某]{2}[李某]{3}[赵某]

    四、场景应用

    现有一张如下表

    image

    需求:查询出每个学生的所有爱好集

    代码:

    select c.Name,left(c.StuList,len(StuList)-1)as hobby from
    (
    select Name,
    (select Hobby +',' from Blog_UserHobby a 
    where a.Name = b.Name
    for xml path(''))as StuList
    from Blog_UserHobby b
    group by b.Name
    )c

    运行结果:

    image

    五、参考文章

    http://www.cnblogs.com/qixuejia/p/4242078.html

    更多精彩内容请看:http://www.cnblogs.com/2star
  • 相关阅读:
    第一份随笔
    慢哈希算法
    彩虹表
    基于Wireshark验证网站口令认证传输方案
    electron学习笔记2
    基于原型的软件需求获取
    《小学四则运算练习软件》结对项目报告
    201571030109 小学四则运算练习软件项目报告
    201571030109 《构建之法》速读
    个人学期总结
  • 原文地址:https://www.cnblogs.com/kimisme/p/5269656.html
Copyright © 2011-2022 走看看