行转列(FOR XML PATH)

SELECT (SELECT ac.ColName+‘,‘ FROM T1 AS ac FOR XML PATH(‘‘)) AS ColName,
       (SELECT ac.colTitle+‘,‘ FROM T1 AS ac FOR XML PATH(‘‘)) AS colTitle

行转列(FOR XML PATH),布布扣,bubuko.com

时间: 2024-12-22 17:08:01

行转列(FOR XML PATH)的相关文章

sql server的for xml path与变通的行转列

SQL Server中有提供一个FOR XML PATH的子句(不知道能不能叫函数),用来将查询结果行输出成XML格式,我们可以通过这个语法做一些变通实现一些特定的功能,比如说行转列.要会变通的话,当然首先是要知道FOR XML PATH的语法. FOR XML PATH的简单语法 假设有一个hobby表(爱好),表中有两个字段,一个是hobbyID(爱好id),一个是hName(爱好名称). 这样,我们执行一条最简单的带FOR XML PATH子句的SQL语句,看看查询出来的结果. SELEC

利用FOR XML PATH行转列(根据某字段分组,多行数据转成一行,并用逗号隔开)

CREATE TABLE #TEST(A VARCHAR(10) NULL,B VARCHAR(MAX) NULL) INSERT INTO #TESTSELECT 'A','A001'UNION ALLSELECT 'A','A002'UNION ALLSELECT 'A','A003'UNION ALLSELECT 'B','B001'UNION ALLSELECT 'B','B002' SELECT * FROM #TEST --先来看一个简单的,效果如下图所示: SELECT STUFF

多列转1列 SqlServer 实现oracle10g的 wmsys.wm_concat()--for xml path('')

有这么一个表 create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') insert into tb values(3, 'ddd') insert int

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 - for xml path('') 实现多行合并到一行, 并带有分隔符

docs.microsoft.com 链接:  SQL一个应用场景与FOR XML PATH应用 首先呢!我们在增加一张学生表,列分别为(stuID,sName,hobby),stuID代表学生编号,sName代表学生姓名,hobby列存学生的爱好!那么现在表结构如下: 这时,我们的要求是查询学生表,显示所有学生的爱好的结果集,代码如下: SELECT B.sName,LEFT(StuList,LEN(StuList)-1) as hobby FROM ( SELECT sName, (SELE

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

经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用示例. DECLARE @TempTable table(UserID int , UserName nvarchar(50));insert into @TempTable (UserID,UserName) values (1,'a')insert into @TempTable (UserID

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 Server合并多行询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数

示例表 tb 数据如下 id value-----1 aa1 bb2 aaa2 bbb2 ccc SELECT id, [val] = ( SELECT [value] + ',' FROM tb AS b WHERE b.id = a.id FOR XML PATH('') ) FROM tb AS a 显示结果 1 aa,bb, 1 aa,bb, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, SELECT id, [val]=( SELECT [v

合并多行查询数据到一行:使用自连接、FOR XML PATH('')、STUFF或REPLACE函数

示例表 tb 数据如下 id value—————1 aa1 bb2 aaa2 bbb2 ccc 第一种 SELECT id, [val]=( SELECT [value] +',' FROM tb AS b WHERE b.id = a.id FOR XML PATH('') ) FROM tb AS a 第一种显示结果 1 aa,bb, 1 aa,bb, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, 2 aaa,bbb,ccc, 第二种 SELECT id, [val]=( S