使用for xml path()进行字符串拼接

Department表

Employee表

查询结果:

查询每个部门的人员名称

dbo.View_1:

SELECT   dbo.Department.DepName, dbo.Employee.EmpName

FROM      dbo.Department INNER JOIN

dbo.Employee ON dbo.Department.DepID = dbo.Employee.DepID

查询:

select DepName,STUFF((select ‘,‘+ EmpName  from dbo.View_1  where dbo.View_1.DepName=b.DepName for xml path(‘‘)),1,1,‘‘)as name

from dbo.View_1 as b group by DepName

时间: 2024-10-10 19:47:34

使用for xml path()进行字符串拼接的相关文章

sql 使用 FOR XML PATH实现字符串拼接

sql中经常需要把多个行数据合成一行下面是利用 FOR XML PATH来实现的简单介绍. 1,把图一的转换为图二: 1 SELECT articleID, 2 (SELECT CONVERT(varchar(10),tagID)+',' FROM articleTag_tb 3 FOR XML PATH('')) AS tagID FROM articleTag_tb GROUP BY articleID 以上是一个表的,下面看看多表关联的做法,其实是一样的只是连接表查询这是一个文章对应多个标

SQL SERVER FOR XML PATH合并字符串

两种方式,效率立竿见影 ------------------------------------------------ SET STATISTICS TIME ON DECLARE @OrderStr NVARCHAR(max) = ''; SELECT @OrderStr += a.SerialNumber+',' FROM dbo.WithdrawalsLog a SET STATISTICS TIME OFF ---------------------------------------

Sql 使用xml path 将单列拼接成一行

 功能需要,将查询到的单列guid拼接成一个字符串,懒得去在后台去做遍历拼接,百度了下,如下↓ 首先,确定你要合并的列 SELECT user_name FROM dbo.users 其次,将其以xml 格式输出SELECT user_name FROM dbo.users FOR XML PATH 然后,去除包裹的节点名称SELECT ',' +user_name FROM dbo.users FOR XML PATH('') (这里,','+user_name以后变成了无列名状态,','可以

使用 SQL的 for xml path来进行字符串拼接

本篇主要讲怎么利用SQL的FOR XML PATH 参数来进行字符串拼接,FOR XML PATH的用法很简单,它会以xml文件的形式来返回数据. 我的讲解步骤: 1:构造初始数据 2:提出问题 3:简单介绍FOR XML PATH 4:解答问题 1.构造初始数据 举出一个经典的学生课程例子,共有学生.课程与学生课程三张表. 表1:Student student_id student_name 1 张三 2 李四 3 王五 表2:Course course_id course_name 1 语言

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

一个表,然后语句如下 --查询 select id, name=stuff((select ','+name from tb where id=t.id for xml path('')),1,1,'') from tb t group by id 结果如下: 分组的时候 注意看清 id=t.id  .错误的情况会把所有的列加起来.非常尴尬.

使用 SQL的 for xml path来进行字符串拼接 (group by)

参考: http://www.cnblogs.com/repository/archive/2011/01/18/1938418.html select convert(varchar(10),c.[STARTSPECDAY],120), (select [LeaveName]+' ' from ( select convert(varchar(10),a.[STARTSPECDAY],120) STARTSPECDAY,a.[LeaveName] from [test].[dbo].[View

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

本来用 Writer 写一篇关于一列多行合并的博客来的,结果快写完了时候,在一个插入代码时候,崩了,重新打开,居然连草稿都没有……哎,我也是无语了…… 于是没有心情再写,直接发一下代码,再顺便留几个其他博文的链接 1.FOR XML PATH http://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html 2.STUFF http://www.cnblogs.com/345563452/archive/2009/10/29/1

SQL 将一条记录中多个字段的值拼接为一个字段 && 将多行数据合并成一行,并且拼接CONVERT() 、for xml path的使用

接着上篇文章的订单表(商品编号,价格设置时间id(类似于创建时间,创建时间约早,则act_id越小) ,价格的时间段,商品价格) 一.将一条记录中多个字段的值拼接为一个字段 现要求将两个时间段合并为一个字段,应该如何做呢? 先来看下理想的结果: 查询出的时间段合并到一起了: 代码如下,将查询的字段用+'你想要的符号' + 拼接即可 select item,act_id,loc_id,convert(varchar(100),start_date,20)+ '-' +convert(varchar

for xml 字符串拼接

SELECT TOP 10 B.user_gid,LEFT(StuList,LEN(StuList)-1) as hobby FROM (SELECT user_gid,( SELECT CAST(auth_type AS VARCHAR(50))+',' FROM credit.record_auth WITH(nolock) WHERE user_gid=A.user_gid FOR XML PATH('') ) AS StuListFROM credit.record_auth AS A