大家好,又见面了,我是你们的朋友全栈君。
首先我们来看下PIVOT函数的英文翻译:
pivot:v 在枢轴上旋转(转动)
首先声明下PIVOT函数的语法格式为:
SELECT [字段1,2,3…] FROM [表名] — 将从##TEST表中选出的一些字段作为原表。 AS [原表别名] PIVOT( [聚合函数] ( [原表字段1] ) FOR [原表字段2] IN ( [原表2值1],[原表字段2值2]… ) ) AS [新表别名]
下面以例子讲解PIVOT函数:
1、首先建立一个全局临时表
结果如下:
然后我们写一个PIVOT用法,来看看它的效果:
可能一下看不懂,在本文的开头我们提到PIVOT的英文含义是在枢轴上旋转,上述sql语句中,直译过来就是原表p以project这个单元格作为枢轴,将project这一列逆时针旋转90度,并去重,原来project的行变成了新表t中的列。
这样可能还不能得到我们想要的结果:
你可能会疑问?为什么会出现聚合函数,我们知道,聚合函数是和GROUP BY一起使用的。这是因为除了PIVOT函数里出现的score和project字段外,原表p中的其他字段都将被GROUP BY,作为新表中的行,因为如此,使得PIVOT结果出现多行。
补充一点:临时表只能执行一次,会暂时存贮在内存中,要想删除临时表,执行DROP TABLE ##TEST,即可。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234746.html原文链接:https://javaforall.cn
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/13929.html