临时表#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 :要插入的字符

生成透视列之for xml path的更多相关文章

  1. SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF

    原文:SQL SERVER FOR 多列字符串连接 XML PATH 及 STUFF 本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然 ...

  2. 生成透视列之COALESCE

    临时表#t,数据如下: 实现如下数据: 方法一: declare @sql0 varchar(MAX)select @sql0 = isnull(@sql0 + '],[' , '') + Provi ...

  3. SqlServer——for xml path

    for xml path 就是将 sql 查询出来的内容以XML的格式显示出来.参考网站MSDN:将 PATH 模式与 FOR XML 一起使用. 先创建测试用的表格: create table SZ ...

  4. SQL Server FOR XML PATH 语句的应用---列转行

    经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...

  5. sql server 使用for xml path 将1列多行转换为字符串连接起来,俗称 sql 合并字符

    由于项目的原因,需要将一些记录分类汇总,但还要列出相关的明细,这样的需求我还是第一次遇到,蛋疼了,还是请求一下度娘吧.搜索一番还是有结果,请看以下例子: create table tb ([id] i ...

  6. SQL 将一列多行数据合并为一行 FOR XML PATH

    FOR XML PATH 方法是用于将查询结果集以XML形式展示,这样展示方式的好处不言而喻.现在我要介绍的FOR XML PATH的"另类"用法. 首先,我们先来看看它的正常用法 ...

  7. Sql server—— for xml path简单用法(可以按照分组把相同组的列中的不同的值,像字符串一样拼接在一起显示在分组之后的列中。)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAACWCAIAAABo2EyXAAAKeklEQVR4nO2dy27rNh7G+U7CFIrfZX

  8. FOR XML PATH做为数据表中单列或者多列的字符串拼接的方法,放到一列中去,很好用。

    先看看自己弄得例子,SELECT sName+',',hoppy+','  FROM student2 where hoppy='游泳' FOR XML PATH('')--PATH后面跟的是行标题, ...

  9. sql server 使用for xml path 将1列多行转换为字符串连接起来

    create table tb ([id] )) insert into tb ,'aa' union all ,'bb' union all ,'cc' union all ,'dd' union ...

随机推荐

  1. Mysql [Err] 1292 - Truncated incorrect DOUBLE value

    Mysql [Err] 1292 - Truncated incorrect DOUBLE value: 'a' - 苍 - 博客园 https://www.cnblogs.com/cang12138 ...

  2. [c++项目]迷宫 控制台游戏

    #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<time.h> #i ...

  3. Node.js Error: Cannot find module express的解决办法

    1.全局安装express框架,cmd打开命令行,输入如下命令: npm install -g express express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令: npm in ...

  4. LeetCode136.只出现一次的数字

    给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: 输入: [ ...

  5. spring cloud配置注册中心显示服务的ip地址和端口

    1.在springcloud中服务的 Instance ID 默认值是: ${spring.cloud.client.hostname}:${spring.application.name}:${sp ...

  6. Azure Function & AWS Function With C#

    Using C# with Azure Functions Two important prerequisites need to be met to build Azure Functions ap ...

  7. docker容器启动haproxy

    1.在本地新增haproxy.cfg文件(本次haproxy.cfg文件路径为/root/haproxy.cfg),内容如下: #---------------- # Global settings ...

  8. DFA确定有限状态自动机

    DFA 在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机.对于一个给定的属于该自动机的状态和 ...

  9. Educational Codeforces Round 63 (Rated for Div. 2) D. Beautiful Array(动态规划.递推)

    传送门 题意: 给你一个包含 n 个元素的序列 a[]: 定义序列 a[] 的 beauty 为序列 a[] 的连续区间的加和最大值,如果全为负数,则 beauty = 0: 例如: a[] = {1 ...

  10. mkdir(): Permission denied

    记录下,凡是遇到此类问题都是无权限导致. 根据不同场景,需要在不同的文件夹设置不同的权限. 例如,图片相关, 在php中,首先看下 配置php.ini的文件上传是否开启(file_uploads = ...