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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java se the operation is not applicable to the current selection
下一篇:MSsql bcp

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.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国际化bundle_java语言国际化--ResouceBundle、struts 2019-04-21
java图片延迟加载_jQuery实现图片延迟加载 2019-04-21
java开发加入购物车功能_java web开发——购物车功能实现 2019-04-21
Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3 2019-04-21
python 协程 asyncio_python – asyncio.as_completed是否会产生期货或协同程序? 2019-04-21
java设定xml文件的encoding_配置web-xml解决中文乱码问题,及各种乱码问题集结 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
graphql-php enum,php – 如何在不写长查询的情况下查询所有的GraphQL类型字段? 2019-04-21
php date 函数用法,php中date()日期时间函数使用方法 2019-04-21