我目前正在开发一个具有 2 个表的系统,如下所示:
Table_1
-------
ID
Table2ID
Value
Table_2
--------
ID
ColumnName
每个表的一些模拟结果:
Table_1
Table2ID | Value
---------------
1 | ABCD
1 | EFGH
1 | IJKL
2 | MNOP
2 | QRST
2 | UVWX
Table_2
ID | ColumnName
--------------------
1 | First_Set
2 | Second_Set
所以,我有以下查询,试图将 Table_2 的行结果变成列
SELECT *
FROM(
SELECT B.ColumnName, A.Value
FROM Table_1 AS A
INNER JOIN Table_2 AS B ON A.Table2ID = B.ID
) AS P
PIVOT
(
min(P.Value)
for P.ColumnName in ([First_Set], [Second_Set])
) AS PIV
问题是,正如它所写的,我得到了一个结果。我的返回值将是这样的:
First_Set | Second_Set
-------------------------
ABCD | MNOP
我想要的是每列的所有结果,但我无法找到一种使用 PIVOT 的方法来让我做到这一点。
有没有人对将行转换为列然后为每列接收多个结果的最佳方法提出建议?