zoukankan      html  css  js  c++  java
  • 生成透视列之for xml path

    临时表#t原始数据:

    实现如下格式,即根据Province分组,把每个组对应的City列以某种格式展示:

    实现方法:

    select t.Province,(
    select city+',' From #t where t.Province=province for xml path('')
    ) as 城市群 from #t t
    group by t.Province

    注:

    如果要去掉每组城市群后面的逗号,有几种方法可以参考:

    --方法一:通过left去掉列最后一个字符
    select province,left(citys,len(citys)-1) citys from(

    select province,
    (
    select city+',' from #t where province=t.Province for xml path('')
    ) citys from #t t
    group by province

    )b

    --方法二:通过sutff去掉列第一个字符
    select province,stuff(citys,1,1,'') citys from(

    select province,
    (
    select ';'+city from #t where province=t.Province for xml path('')
    ) citys from #t t
    group by province

    )b

    --方法三:通过stuff去掉列最后一个字符
    select province,stuff(citys,LEN(citys),1,'') citys from(

    select province,
    (
    select city+';' from #t where province=t.Province for xml path('')
    ) citys from #t t
    group by province

    )b

    再废话一下:

    Select stuff('abcdef',2,3,'ghijk')   结果:aghijkef 
    stuff的功能:删除指定长度的字符串并在指定的起始点插入另一组字符 
    STUFF(character_expression ,start ,length ,character_expression) 
    character_expression :操作的字符,start:删除和插入的起始点,length:删除的长度,character_expression :要插入的字符 

  • 相关阅读:
    mpstat 查看多核CPU负载状态
    redis pipeset发布订阅
    sqlalchemyorm学生签到 成绩记录查询系统
    ORM数据库命令操作包装实例对象学习
    Python Mysql数据库操作
    redis hash操作 list列表操作
    pymysqlsqlalchemyorm
    ss命令用来显示处于活动状态的套接字信息。
    8月20日学习日志
    8月22日学习日志
  • 原文地址:https://www.cnblogs.com/eboss/p/3914841.html
Copyright © 2011-2022 走看看