PIVOT使用的一个疑问

半睡半醒半人梦 2015-04-22 05:43:11

select * from (
select KaoHe_D_ID,KaoHe_M_ID,AvgScore,RealName,Code,ZhiBiao_Name,Score from #temp ) p pivot ( max(isnull(Score , 0)) FOR ZhiBiao_Name IN ([服从意识],[服务意识],[任务完成情况],[通话时长],[团队合作],[业绩完成情况]) ) as pvt


在使用pivot进行 行转列时, 上面的语句中 pivot(max(isnull(score,0))) 这里会报错,去掉isnull转换 却没问题,
这个是 pivot语法的原因吗? 网上没有找到类似的资料。
求大神解答
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
不用PIVOT 用SUM CASE 反而比较方便
  • 打赏
  • 举报
回复
引用 3 楼 ky_min 的回复:
[quote=引用 2 楼 xiaolei8736 的回复:] [quote=引用 1 楼 ky_min 的回复:]
select * from (
	select KaoHe_D_ID,KaoHe_M_ID,AvgScore,RealName,Code,ZhiBiao_Name,ISNULL(Score,0)Score from #temp ) p pivot ( max(isnull(Score , 0)) FOR ZhiBiao_Name IN ([服从意识],[服务意识],[任务完成情况],[通话时长],[团队合作],[业绩完成情况]) ) as pvt 
那个只能是列元素,不能是表达式 不过,你可以如上移下地方
我这个IN()里面的列是动态的,使用PIVOT转换之后才会出现null值,所以isnull加在前面没有达到效果,试过了, [/quote]我懂你意思了,用PIVOT的坏处我觉得就是这样,添加一些处理时很不灵活 解决方法还是有的,在这边处理,因为你是动态生成的,这边也就一样要动态生成这样的列名 select * from ([/quote] 你的想法我也有想到,在这个地方也使用isnull对动态列名做转换操作,但是这样写起来 会很麻烦。 所以想寻找一个 比较简便的方法来实现。
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
引用 2 楼 xiaolei8736 的回复:
[quote=引用 1 楼 ky_min 的回复:]
select * from (
	select KaoHe_D_ID,KaoHe_M_ID,AvgScore,RealName,Code,ZhiBiao_Name,ISNULL(Score,0)Score from #temp ) p pivot ( max(isnull(Score , 0)) FOR ZhiBiao_Name IN ([服从意识],[服务意识],[任务完成情况],[通话时长],[团队合作],[业绩完成情况]) ) as pvt 
那个只能是列元素,不能是表达式 不过,你可以如上移下地方
我这个IN()里面的列是动态的,使用PIVOT转换之后才会出现null值,所以isnull加在前面没有达到效果,试过了, [/quote]我懂你意思了,用PIVOT的坏处我觉得就是这样,添加一些处理时很不灵活 解决方法还是有的,在这边处理,因为你是动态生成的,这边也就一样要动态生成这样的列名 select * from (
  • 打赏
  • 举报
回复
引用 1 楼 ky_min 的回复:
select * from (
	select KaoHe_D_ID,KaoHe_M_ID,AvgScore,RealName,Code,ZhiBiao_Name,ISNULL(Score,0)Score from #temp ) p pivot ( max(isnull(Score , 0)) FOR ZhiBiao_Name IN ([服从意识],[服务意识],[任务完成情况],[通话时长],[团队合作],[业绩完成情况]) ) as pvt 
那个只能是列元素,不能是表达式 不过,你可以如上移下地方
我这个IN()里面的列是动态的,使用PIVOT转换之后才会出现null值,所以isnull加在前面没有达到效果,试过了,
还在加载中灬 2015-04-22
  • 打赏
  • 举报
回复
select * from (
	select KaoHe_D_ID,KaoHe_M_ID,AvgScore,RealName,Code,ZhiBiao_Name,ISNULL(Score,0)Score from #temp ) p pivot ( max(isnull(Score , 0)) FOR ZhiBiao_Name IN ([服从意识],[服务意识],[任务完成情况],[通话时长],[团队合作],[业绩完成情况]) ) as pvt 
那个只能是列元素,不能是表达式 不过,你可以如上移下地方
Excel是人们在现代商务办公中使用率极高的必备工具之一,但很多人并不知晓它强大的功能和用法,或只是停留在一知半解的状态,本书正是要帮助您揭开Excel数据透视表应用的神秘面纱,利用Excel的诸多实用技巧解决数据透视表工作和学习中的问题。《Excel2013数据透视表实战技巧精粹辞典(339秘技大全 超值双色版)》按Excel的应用功能进行归类,甚至包含许多容易被忽略的功能。无论是初学者还是经常使用Excel的行家,本书都可以成为您活学活用Excel数据透视表应用的参考用书,能解决您在学习Excel中遇到的各种疑问。 Excel2013数据透视表实战技巧精粹辞典(339秘技大全 超值双色版)所有技巧覆盖了Excel数据透视表应用的方方面面。技巧式写作,更方便于读者学习和查阅。本书挑选了Excel数据透视表应用中最常用到的技巧和疑问,学习本书之后,即可从办公操作“菜鸟”摇身一变成为人人钦佩的办公达人!《Excel2013数据透视表实战技巧精粹辞典(339秘技大全 超值双色版)》同理适用于Excel 2003/2007/2010/2013版本,同样适用于Windows 8/7操作系统。本书技巧实用,全部秘技是从Excel数据透视表自学者的上万个提问中提炼出来的,使Excel数据透视表学习更便捷。本书内容丰富,创建与分析数据透视表、在商务领域中的应用、数据透视图、PowerPivot、输出与打印、快捷键等秘技尽在本书。本书查阅方便,属于便携式的辞典类工具书,按应用功能分类,方便读者随时随地学习和查阅。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧