mssql 动态行转列。
发布日期:2022-03-29 14:04:52
浏览次数:47
分类:博客文章
本文共 2250 字,大约阅读时间需要 7 分钟。
create table #a (a int , b char(4))insert into #a select 1,'张三'insert into #a select 2,'李四'insert into #a select 3,'王五'select * from #aa b----------- ----1 张三2 李四3 王五(3 行受影响) --行转列,步骤:''+张三+],[+王五+],[+李四declare @sql varchar(100)select @sql=isnull(@sql+'],[','')+b from #a select @sql='['+@sql+']'select @sql as 结果1go结果1----------------------------------------------------------------------------------------------------[张三],[李四],[王五](1 行受影响)--结果为NULL,所以用ISNULLdeclare @sql varchar(100)select @sql=@sql+b from #aselect @sqlNULL----------------------------------------------------------------------------------------------------NULL(1 行受影响)--结果,同上declare @sql varchar(100)set @sql=''select @sql=@sql+'],['+b from #aselect @sql=right(@sql,len(@sql)-2)+']'select @sql as 结果2go 结果2----------------------------------------------------------------------------------------------------[张三],[李四],[王五](1 行受影响) --结果,同上declare @sql varchar(100)set @sql=''select @sql=stuff((select '],['+b from #a for xml path('')),1,2,'') +']'select @sql as 结果3go 结果3----------------------------------------------------------------------------------------------------[张三],[李四],[王五](1 行受影响) --结果,同上。declare @sql varchar(8000)select @sql=coalesce(@sql+'],[','')+b from #aselect @sql='['+@sql+']'select @sql as 结果4go 结果4----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------[张三],[李四],[王五](1 行受影响) --思路一样都是列行互转,结果不一样。declare @b varchar(100)declare @c varchar(100)set @c='select * from (select b from #a ) as e pivot (max(b) for b in ([张三],[李四],[王五])) as c'exec(@c) 张三 李四 王五---- ---- ----张三 李四 王五(1 行受影响)
create table #a(id char(2) ,a char(2),b char(2))insert into #a values('1','2','3')insert into #a values('1','3','3')insert into #a values('1','4','3')insert into #a values('2','1','5')insert into #a values('2','2','5')select a.id,[a]=stuff((select ',' +b from #a as a1 where a1.id=a.id FOR XML PATH('')),1,1,' ' ),b from #a agroup by a.id,b;drop table #a;结果:
id a b----------------1 3,3,3 3 2 5,5 5(2 行受影响))
转载地址:https://www.cnblogs.com/1-Admin/p/6086861.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月15日 20时05分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java reduce.mdn_reduce高级用法
2019-04-21
java shape用法_Java PShape.scale方法代码示例
2019-04-21
java字符串三目_java字符串连接运算符和三目运算符
2019-04-21
java 堆内存 非堆内存_JVM 堆内存和非堆内存
2019-04-21
Java新手写什么demo_通过入门demo简单了解netty使用方法
2019-04-21
java图片延迟加载_jQuery实现图片延迟加载
2019-04-21
java开发加入购物车功能_java web开发——购物车功能实现
2019-04-21
Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3
2019-04-21
hanlp java api_java分词工具hanlp介绍
2019-04-21
nginx php 源码安装,Nginx1.12.2加php7.2.0的编译安装
2019-04-21
php 删除字节,php – 删除无效/不完整的多字节字符
2019-04-21
php 实现版本号对比,如何在PHP中实现比较版本号
2019-04-21
php sql 给数据库追加内容,php如何向数据库中的某串数据后追加内容【急】
2019-04-21
php微信小程序获取用户信息,微信小程序授权获取用户详细信息openid的实例详解...
2019-04-21
Java三元运算和if,Java三元运算符与<JDK8兼容性中的if / else
2019-04-21
php date 函数用法,php中date()日期时间函数使用方法
2019-04-21