1
我有这样的:一个新字段添加到PIVOT
SELECT Value AS FieldName, [42] AS [KeyID_42],[600] AS [KeyID_600]
INTO ##Temp311037
FROM
(
SELECT TransID, Value, FieldName
FROM
(
SELECT TransID, Convert(VarChar(250), [AccountNbr]) AS [AccountNbr], [CoAdd1]) AS [CoAdd1], Convert(VarChar(250), [CoAdd2]) AS [CoAdd2], Convert(VarChar(250), [CoCity]) AS [CoCity], Convert(VarChar(250), [CoFax]) AS [CoFax]
FROM tblSQLContacts
) p
UNPIVOT
(
FieldName FOR Value IN
([accountNbr], [CoAdd1], [CoAdd2], [CoCity], [CoFax])
)AS unpvt
) AS SourceTable
PIVOT
(
MAX(FieldName)
FOR TransID IN ([42],[600])
) AS PivotTable
WHERE [42] <> [600]
而且我的输出是这样的:
FieldName KeyID_42 KeyID_600
AccountNbr 55664 55635
ChoiceFundYN 0 1
CoAdd1 PO Box 2200 1500 Mountain Drive
CoAdd2 PO Box 7004 PO Box 4300
CoCity Las Vegas Birmingham
CoFax 5552355622 5552975152
而这个数据来自表tblSQLContacts
。那么,问题是,我将有一个大约20桌的巨大的UNION
。所以,我希望能够将表名添加到该输出中,在它自己的字段中。所以最终的结果是:
FieldName KeyID_42 KeyID_600 Table
AccountNbr 55664 55635 tblSQLContacts
ChoiceFundYN 0 1 tblSQLContacts
CoAdd1 PO Box 2200 1500 Mountain Drive tblSQLContacts
CoAdd2 PO Box 7004 PO Box 4300 tblSQLContacts
CoCity Las Vegas Birmingham tblSQLContacts
CoFax 5552355622 5552975152 tblSQLContacts
这可能吗?我似乎无法使其工作。理想情况下,我希望它成为第一个领域,但我会把它放在任何我能得到它的地方。
您可以将一个硬编码的列放到名为table的pivot子查询中,并将其与您的表名相关联 - 因为每行的值相同,所以不应该影响您的透视。 – Taryn
我将第一行更改为SELECT'tblSQLContacts'AS TableName,Value AS FieldName,[42] AS [KeyID_42],[600] AS [KeyID_600]并且工作正常!谢谢! –