如何在SQL (,par2,value)之外创建Par1 x Par2表输出(以便您可以以友好和感性的方式将其呈现给用户)。示例:

我没有太多的代码,也没有任何值得展示的地方,我认为有一种标准的方法。我开始尝试生成行标题,并使用一个UNION窗口函数添加WITH,但是马上就开始挣扎了。
测试数据样本:
CREATE TABLE TestTable(
[Par1] [int] NULL,
[Par2] [int] NULL,
[Val] [int] NULL
) ON [PRIMARY]
GO
INSERT INTO TestTable (Par1, Par2, Val)
VALUES
(1, 20 , 104),
(1, 40 , 105),
(1, 60 , 110),
(1, 80 , 115),
(1, 100 , 148),
(1, 120 , 150),
(2, 20 , 162),
(2, 40 , 163),
(2, 60 , 174),
(2, 80 , 188),
(2, 100 , 192),
(2, 120 , 196),
(3, 20 , 200),
(3, 40 , 217),
(3, 60 , 231),
(3, 80 , 255),
(3, 100 , 279),
(3, 120 , 283),
(4, 20 , 284),
(4, 40 , 284),
(4, 60 , 286),
(4, 80 , 288),
(4, 100 , 297),
(4, 120 , 300),
(5, 20 , 303),
(5, 40 , 305),
(5, 60 , 307),
(5, 80 , 325),
(5, 100 , 337),
(5, 120 , 349)旁注:我肯定这是必须要回答之前,但我不能谷歌任何相关的答案。搜索像“创建表视图”这样的字符串会得到完全无关的结果.-)。如果是我找不到正确的措辞,我很抱歉。
发布于 2020-01-16 11:22:33
您需要有条件的聚合:
SELECT Par1,
SUM(CASE WHEN Par2 = 20 THEN Val ELSE 0 END) AS 20_Val,
. . .
SUM(CASE WHEN Par2 = 120 THEN Val ELSE 0 END) AS 120_Val
FROM TestTable tt
GROUP BY Par1;https://stackoverflow.com/questions/59768418
复制相似问题