T_SQL 将一列多行数据合并为一行】的更多相关文章

SQL Server在进行数据迁移和报表处理的时候会遇到将一列多行数据拼接为一个字符串的情况,为了处理这个问题,在网上找了一些相关的资料,提供两种方法,供遇到类似问题的朋友们参考,也借此加深自己的印象. Table:SC Student Course 张三 大学语文 李四 大学语文 张三 书法鉴赏 张三 音乐欣赏 李四 电影赏析 期望得到的结果: Student Course 张三 大学语文,书法鉴赏,音乐欣赏 李四 大学语文,电影赏析 IF OBJECT_ID(N'SC') IS NOT NU…
SQL Server 在进行数据迁移和报表处理的时候遇到将一列多行数据拼接为一个字符串的情形,查找相关的资料整理如下,提供两种方法. Table:SC Student Course 张三 大学语文 李四 大学语文 张三 书法鉴赏 张三 音乐欣赏 李四 电影赏析 期望得到的结果: Student Course 张三 大学语文,书法鉴赏,音乐欣赏 李四 大学语文,电影赏析 一.用户自定义函数 )) ) AS BEGIN ) SELECT @Course = ISNULL(@Course + ',',…
原表数据: 期望结果: 使用STUFF + FOR XML PATH即可实现以上效果 执行以下SQL: , , '') AS Course FROM Student AS T 可以看到输出结果与期望结果相同: STUFF语法 STUFF ( character_expression , start , length , replaceWith_expression ) 参数 character_expression字符数据的表达式. character_expression 可以是常量.变量,也…
FOR XML PATH 方法是用于将查询结果集以XML形式展示,这样展示方式的好处不言而喻.现在我要介绍的FOR XML PATH的"另类"用法. 首先,我们先来看看它的正常用法.下图是我们用到的一张TEST_PERSON表: 用FOR XML PATH方法查询,SQL语句如下: SELECT * FROM TEST_PERSON FOR XML PATH 显示结果如下: 展开结果可以看到如下图: 神奇吧!!!!细心的同学会注意到这个XML文件的行节点是<row>,如果需…
转:https://blog.csdn.net/AntherFantacy/article/details/83824182 今天同事问了一个需求,就是将多行数据合并成一行进行显示,查询了一些资料,照搬过来如下.顺便自己记一下. 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classe…
1.按Ctrl+F,弹出“替换”的窗口: 2.选择“替换”菜单: 3.“查找目标”内容输入为:\r\n: 4.“替换为”内容为空: 5.“查找模式”选择为正则表达式: 6.设置好之后,点击“全部替换”,即可将多行数据合并成一行.  …
示例 修改前:1列多行数据 修改后:合并成一列 示例语句 1 2 3 4 5 6 7 8 9 10 11 select 类别,     名称 = (         stuff(             (select ',' + 名称 from Table_A where 类别 = A.类别 for xml path('')),             1,             1,             ''         )     ) from Table_A as A grou…
昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行 比如表中有两列数据 : ep_classes  ep_name AAA         企业1 AAA         企业2 AAA         企业3 BBB         企业4 BBB         企业5 我想把这个表变成如下格式: ep_classes      ep_name AAA             企业1,企业2,企业3 BBB  …
emo场景,以oracle自带库中的表emp为例: select ename,deptno from emp order by deptno; ENAME DEPTNO CLARK 10 KING 10 MILLER 10 SMITH 20 ADAMS 20 FORD 20 SCOTT 20 JONES 20 ALLEN 30 BLAKE 30 MARTIN 30 JAMES 30 TURNER 30 WARD 30 现在想要将同一部门的人给合并成一行记录,如何做呢?如下: ENAME DEPT…
select *,stuff(select ‘,’ + fieldname from table1 for xml path(”)),1,1,”)  as  field from table2 for xml path(”) ,自从 SQL Server2005及更高版本提供了一个新查询语法 ,主要是用于将一列中的部分数据合并到一个单元格中: stuff()函数主要是用于将制定位置的字符串用特定的字符串替换:…