【发布时间】:2014-08-04 16:02:26
【问题描述】:
我有一个来自 Active Direcory 的信息表,但不幸的是它是这样显示的;
+------+------------+----------------+-------------------+
| dnId | propNameId | propertyName | propertyValue |
+------+------------+----------------+-------------------+
| 1 | 10 | objectsid | S-1-5-32-548 |
| 1 | 19 | _objectclass | group |
| 1 | 80 | cn | Account Operators |
| 1 | 82 | samaccountname | Account Operators |
| 1 | 85 | name | Account Operators |
| 2 | 10 | objectsid | S-1-5-32-544 |
| 2 | 19 | _objectclass | group |
| 2 | 80 | cn | Administrators |
| 2 | 82 | samaccountname | Administrators |
| 2 | 85 | name | Administrators |
| 3 | 10 | objectsid | S-1-5-32-551 |
| 3 | 19 | _objectclass | group |
| 3 | 80 | cn | Backup Operators |
| 3 | 82 | samaccountname | Backup Operators |
| 3 | 85 | name | Backup Operators |
+------+------------+----------------+-------------------+
使用一堆临时表和连接,我可以让它显示我想要的方式,就像这样;
+------+--------------+--------------+-------------------+-------------------+-------------------+
| dnId | objectsid | _objectclass | cn | samaccountname | name |
+------+--------------+--------------+-------------------+-------------------+-------------------+
| 1 | S-1-5-32-548 | group | Account Operators | Account Operators | Account Operators |
| 2 | S-1-5-32-544 | group | Administrators | Administrators | Administrators |
| 3 | S-1-5-32-551 | group | Backup Operators | Backup Operators | Backup Operators |
+------+--------------+--------------+-------------------+-------------------+-------------------+
但这感觉真的很混乱和冗长.. 我确信一定有更优雅的方式来做到这一点,也许使用 PIVOT,我已经尝试过(但失败了)明白。
有什么想法/建议吗?
编辑:抱歉,删除了 mysql 标签(这是自动建议的)。我正在使用 MS SQL Server 2008 R2。
【问题讨论】:
-
这里有一个answer 类似的问题。
标签: sql sql-server pivot