【发布时间】:2020-01-11 01:44:10
【问题描述】:
我有下表
+-----+-------+------+---------+
| ID | NAME | SORT | AMOUNT |
+-----+-------+------+---------+
| 1 | sak | A | 200 |
| 2 | mods | b | 200 |
| 3 | wef | c | 200 |
| 4 | sak | b | 300 |
| 5 | mods | a | 210 |
+-----+-------+------+---------+
我写了以下代码:
SELECT ID,A, B, C
FROM
(
Select ID,SORT,
'SORT'+
cast(row_number() over(partition by ID order by ID)
as varchar(10)) Col
from TABLE
) Temp
pivot
(
max (SORT)
for Col in ( A, B, C )
)piv
我得到了这个结果:
+----+------+------+------+
| ID | A | B | C |
+----+------+------+------+
| 1 | NULL | NULL | NULL |
| 2 | NULL | NULL | NULL |
| 3 | NULL | NULL | NULL |
| 4 | NULL | NULL | NULL |
| 5 | NULL | NULL | NULL |
+----+------+------+------+
但需要以这种方式显示表格,但我得到的是 NULL 而不是数量。
【问题讨论】:
-
MySQL 不支持
PIVOT。您实际使用的是哪个数据库? -
我使用的是sql server
-
好吧 - 我删除了
mysqli标签。
标签: sql sql-server tsql group-by pivot