sql - T-SQL:将行转换为列
问题描述
我会有这样的数据
ID | 姓名 | 属性 | 类型 |
---|---|---|---|
1 | 产品_1 | 红色的 | 颜色 |
2 | 产品_1 | 小的 | 尺寸 |
3 | 产品_2 | 红色的 | 颜色 |
4 | 产品_2 | 大的 | 尺寸 |
我希望它是这样的
姓名 | 颜色 | 尺寸 |
---|---|---|
产品_1 | 红色的 | 小的 |
产品_2 | 红色的 | 大的 |
我试过枢轴但找不到路
select Name, [Color], [Size] from
(
select Name, [Type] , Attributes
from @temp_table ) AS sourceTable
PIVOT
(
MAX(Attributes)
FOR [Type] IN ([Color], [Size])
) as pivot_table
解决方案
我刚刚发现我的代码没有任何问题。
select fcId, [Color], [Size] from
(
select Id, [Type] , Attribute
from @temp_table ) AS sourceTable
PIVOT
(
MAX(Attribute)
FOR [Type] IN ([Color], [Size])
) as pivot_table
推荐阅读
- sql-server - 处理可以采用空参数的过程
- javascript - 在本地下载 Earth Engine 图像
- vue.js - Nuxt:在page.vue中根据数据动态设置布局
- python-3.x - 将椭圆拟合到点:为什么椭圆适合某些数据集,而对于其他数据集则有 90 度的偏移?
- sql - 为什么 SQL 触发器没有使用电子邮件的权限?
- python - 熊猫在给定条件下乘以字段
- spring - Spring Gateway + Eureka 不会重定向到服务,每次 200
- typescript - 在 VSCode 中重命名导出的 typescript 枚举:如何在使用它的模块中传播名称?
- laravel - 从管理门户编辑记录时的 Laravel 问题
- selenium - 我如何使用 selenium 登录并使用 scrapy 抓取文本