zoukankan      html  css  js  c++  java
  • SQL SERVER的for xml path函数

    这两天在处理一个字符串拼接遇到一个问题:

    老师姓名 学科
    张老师 语文
    张老师 数学
    张老师 英语
    李老师 体育
    李老师 音乐
    需要将上面的记录转换成:

    老师姓名 学科
    张老师 语文,数学,英语,
    李老师 体育,音乐,
    想了一些办法来处理,都感觉不是很好,后来发现SqlServer有一个for xml path的函数,挺不错的。下面就简单的说说。

    一、FOR  XML  PATH  基本运用

    select teacher,object from teach

    利用for  xml  path后:

    select teacher,object from teach for xml path

    二、改变XML行节点的名称

    a、根节点默认是,我们可以通过path后面的参数改变根节点名称:

    select teacher,object from teach for xml path('记录')

    一个小技巧: 可以通过path('')来去掉根节点

    select teacher,object from teach for xml path('')

    b、改变字节点名称:

    改变子节点名称就是给我们的记录起别名:

    select teacher as '老师',object as '学科' from teach for xml path('')

    一个小技巧:通过符号+号,来对字符串类型字段的输出格式进行定义

    select '['+teacher+']' ,'['+object+']' from teach for xml path('')

    三、字符串拼接应用

    通过上面的步骤,基本可以完成文章开头的问题了:

    select teacher as '老师',
    (select  object+','  from  teach  t1 where  t1.teacher=t2.teacher   FOR xml path ('')) as '学科'
    from  teach t2
    group by  teacher

    原文链接:https://blog.csdn.net/a275838263/article/details/51118866

  • 相关阅读:
    ES6 新属性 Symbol
    box-shadow 属性详解
    在vue 中 使用 tinymce编辑器
    var let const 结合作用域 的探讨
    防抖和节流在vue中的应用
    分享几个按钮样式
    队列学习
    栈的学习
    Object—常用的遍历
    从零认识Java Package
  • 原文地址:https://www.cnblogs.com/hong01072/p/14730573.html
Copyright © 2011-2022 走看看