sql-server - SQL Server 常规透视
问题描述
我有一个名为Comments的 SQL 表,有 2 列:NCC_CLTID 和 NCC_CTYPE
该表有以下信息
NCC_CLTID NCC_CTYPE
TEST1 A
TEST1 A
TEST1 C
TEST1 E
TEST1 E
TEST1 E
TEST1 E
TEST2 A
TEST2 B
TEST2 B
TEST2 C
我想要一个如下所示的数据透视表:
NCC_CLTID TYPE1 TYPE2 TYPE3 TYPE4 TYPE5 TYPE6 TYPE7 TYPE8 ... TYPE20
TEST1 A A C E E E E NULL NULL
TEST2 A B B C NULL NULL NULL NULL NULL
我怎样才能做到这一点?由于某种原因,我看不出有什么方法可以使这项工作
解决方案
假设您知道或最大数量的TYPE
s,您可以使用 row_number() 来确定列
例子
Select *
From (
Select [NCC_CLTID]
,[NCC_CTYPE]
,Item = concat('Type',row_number() over (partition by [NCC_CLTID] order by [NCC_CTYPE]) )
from YourTable
) src
Pivot (max([NCC_CTYPE]) for Item in ([Type1],[Type2],[Type3],[Type4],[Type5],
[Type6],[Type7],[Type8],[Type9],[Type10],
[Type11],[Type12],[Type13],[Type14],[Type15],
[Type16],[Type17],[Type18],[Type19],[Type20]
) ) pvt
结果
推荐阅读
- android-source - 预安装一些应用程序,以便用户无需 root 即可卸载它们
- xamarin.forms - 带有标签条目的自定义内容视图重复 Xamarin 表单
- javascript - 更简单的数据过滤方法
- python-3.x - 在 python3 中将解析的文本写入 .csv 文件时出现换行符/换行符问题
- ruby-on-rails - 无法安装“Mysql2”版本 0.5.2
- c - 如何在 C 编程中移动文件?(移动文件())
- python - python:从其他文件获取变量的各种类型
- facebook-javascript-sdk - 如果用户未登录,则隐藏 Facebook 客户聊天插件
- sharepoint-online - 如何区分个人网站和 OneDrive 网站类型
- javascript - React - onChange 事件中的 setInterval