这是从选择表:
+---------+-------+------------+-----------------------------+-------+
| id | name | date | dtinsert | hour |
+---------+-------+------------+-----------------------------+-------+
| 1355428 | Max | 2019-12-16 | 2019-12-16 13:29:21.2500000 | 11:26 |
| 1355433 | Max | 2019-12-16 | 2019-12-16 13:31:07.5133333 | 11:29 |
| 1355436 | Peter | 2019-12-16 | 2019-12-16 13:32:52.1600000 | 11:30 |
| 1355445 | Peter | 2019-12-16 | 2019-12-16 13:36:34.9466667 | 11:33 |
| 1355456 | Troy | 2019-12-16 | 2019-12-16 13:41:22.7300000 | 11:36 |
+---------+-------+------------+-----------------------------+-------+
这就是我要的
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| 1 | 2 | 3 | 4 | 5 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
| 1355428 | 1355433 | 1355436 | 1355445 | 1355456 |
| Max | Max | Peter | Peter | Troy |
| 16/12/2019 | 16/12/2019 | 16/12/2019 | 16/12/2019 | 16/12/2019 |
| 2019-12-16 13:29:21.2500000 | 2019-12-16 13:31:07.5133333 | 2019-12-16 13:32:52.1600000 | 2019-12-16 13:36:34.9466667 | 2019-12-16 13:41:22.7300000 |
| 11:26 | 11:29 | 11:30 | 11:33 | 11:36 |
+-----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------+
您将需要创建一个动态数据透视表。首先,您需要声明所有应创建的列。这是通过@Cols声明完成的。然后,您需要进行一个包含所有列的调用,此操作在@SQL此处的声明中完成。最后,该调用由EXEC执行。由于没有图像数据,我只能解释逻辑,而不是实际最终结果,但是如果您将数据添加为表,则可以针对该查询进行调整。
``````js
js DECLARE @SQL VARCHAR(1000) DECLARE @Cols VARCHAR(1000)
SET @Cols = Stuff((
SELECT DISTINCT ',' + ' ' + QuoteName(ID) + ''
FROM [TableName] A
ORDER BY 1
FOR XML Path('')
), 1, 1, '') + ''
-- Print @Cols
SET @SQL = '
Select
Name
,' + @Cols + '
From [TableName] A
Pivot (MAX([Columns]) For [ID] in ( ' + @Cols + ')
) as pvt
'
-- Print @SQL
EXEC (@SQL)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。