如何在 unpivot 查询中包含 id 列
How do I include the id column in a unpivot query
我有一个简单的查询 returns 这个结果
TransactionIdentifier TransactionType DateTimeStamp
1 Destruction Dec 23 2015 7:43AM
2 Management May 21 2013 2:01AM
我要转换成下面的格式
TransactionIdentifier ColumnName Value
1 TransactionIdentifier 1
1 TransactionType Destruction
1 DateTimeStamp Dec 23 2015 7:43AM
2 TransactionIdentifier 2
2 TransactionType Management
2 DateTimeStamp May 21 2013 2:01AM
这是我目前的查询
SELECT V.ColumnName, V.Value
FROM (SELECT CONVERT( VARCHAR(4000), TransactionIdentifier) AS TransactionIdentifier,
CONVERT( VARCHAR(4000), TransactionType) AS TransactionType,
CONVERT( VARCHAR(4000), DateTimeStamp) AS DateTimeStamp
FROM Transactions
WHERE TransactionIdentifier IN(1, 2)) AS A1
UNPIVOT(Value FOR ColumnName IN(TransactionIdentifier,TransactionType,DateTimeStamp)) AS V
它returns这个
ColumnName Value
TransactionIdentifier 1
TransactionType Destruction
DateTimeStamp Dec 23 2015 7:43AM
TransactionIdentifier 2
TransactionType Management
DateTimeStamp May 21 2013 2:01AM
如何将 TransactionIdentifier 字段添加到结果中?
只需从 unpivot
中删除 TransactionIdentifier 并将其添加到 Select
语句
SELECT TransactionIdentifier ,V.ColumnName, V.Value
FROM (SELECT CONVERT( VARCHAR(4000), TransactionIdentifier) AS TransactionIdentifier,
CONVERT( VARCHAR(4000), TransactionType) AS TransactionType,
CONVERT( VARCHAR(4000), DateTimeStamp) AS DateTimeStamp
FROM Transactions
WHERE TransactionIdentifier IN(1, 2)) AS A1
UNPIVOT(Value FOR ColumnName IN(TransactionType,DateTimeStamp)) AS V
输出:
TransactionIdentifier ColumnName Value
1 TransactionType Destruction
1 DateTimeStamp Dec 23 2015 7:43AM
2 TransactionType Management
2 DateTimeStamp May 21 2013 2:01AM
希望对您有所帮助。
我有一个简单的查询 returns 这个结果
TransactionIdentifier TransactionType DateTimeStamp 1 Destruction Dec 23 2015 7:43AM 2 Management May 21 2013 2:01AM
我要转换成下面的格式
TransactionIdentifier ColumnName Value 1 TransactionIdentifier 1 1 TransactionType Destruction 1 DateTimeStamp Dec 23 2015 7:43AM 2 TransactionIdentifier 2 2 TransactionType Management 2 DateTimeStamp May 21 2013 2:01AM
这是我目前的查询
SELECT V.ColumnName, V.Value FROM (SELECT CONVERT( VARCHAR(4000), TransactionIdentifier) AS TransactionIdentifier, CONVERT( VARCHAR(4000), TransactionType) AS TransactionType, CONVERT( VARCHAR(4000), DateTimeStamp) AS DateTimeStamp FROM Transactions WHERE TransactionIdentifier IN(1, 2)) AS A1 UNPIVOT(Value FOR ColumnName IN(TransactionIdentifier,TransactionType,DateTimeStamp)) AS V
它returns这个
ColumnName Value TransactionIdentifier 1 TransactionType Destruction DateTimeStamp Dec 23 2015 7:43AM TransactionIdentifier 2 TransactionType Management DateTimeStamp May 21 2013 2:01AM
如何将 TransactionIdentifier 字段添加到结果中?
只需从 unpivot
中删除 TransactionIdentifier 并将其添加到 Select
语句
SELECT TransactionIdentifier ,V.ColumnName, V.Value
FROM (SELECT CONVERT( VARCHAR(4000), TransactionIdentifier) AS TransactionIdentifier,
CONVERT( VARCHAR(4000), TransactionType) AS TransactionType,
CONVERT( VARCHAR(4000), DateTimeStamp) AS DateTimeStamp
FROM Transactions
WHERE TransactionIdentifier IN(1, 2)) AS A1
UNPIVOT(Value FOR ColumnName IN(TransactionType,DateTimeStamp)) AS V
输出:
TransactionIdentifier ColumnName Value
1 TransactionType Destruction
1 DateTimeStamp Dec 23 2015 7:43AM
2 TransactionType Management
2 DateTimeStamp May 21 2013 2:01AM
希望对您有所帮助。