如何根据“Col1”中的值转换格式表 让初始表格内容为
Col1 Col2 Cnt color
----------------------------
1 1 5 green
1 2 0 blue
1 3 7 red
2 1 0 gray
2 2 10 yellow
2 3 8 orange
INTO以下格式的表格
c11 d11 e11 color11 c12 d12 e12 color12 c13 d13 e13 color13
------------------------------------------- -----------------------
1 1 5 green 1 2 0 blue 1 3 7 red
2 1 0 gray 2 2 10 yellow 2 3 8 orange
该查询用于生成报告的数据集。其中我绘制了每个x,y坐标的气泡图。
“c11 d11 e11 c12 d12 e12 c13 d13 e13”是新数据集中的列名。由于列可以动态变化,我已经引用了这种方式。
我使用颜色绘制每个气泡值的颜色
有人可以帮忙查询一下吗?
答案 0 :(得分:0)
我认为PIVOT解决方案不是你真正追求的。相反,您可以执行以下操作
WITH TestData AS
(
SELECT 1 Col1, 1 Col2, 5 Cnt, 'green' color
UNION SELECT 1 , 2 , 0 Cnt, 'blue'
UNION SELECT 1 , 3 , 7 Cnt, 'red'
UNION SELECT 2 , 1 , 0 Cnt, 'gray'
UNION SELECT 2 , 2 , 10 Cnt, 'yellow'
UNION SELECT 2 , 3 , 8 Cnt, 'orange'
)
SELECT
t1.col1 c11 ,
t1.col2 d11 ,
t1.cnt e11,
t1.color color11,
t2.col1 c12 ,
t2.col2 d12 ,
t2.cnt e12,
t2.color color12 ,
t3.col1 c13 ,
t3.col2 d13 ,
t3.cnt e13,
t3.color color13
FROM
TestData t1
inner join TestData t2
ON t1.Col1 = t2.Col1
inner join TestData t3
ON t1.Col1 = t3.Col1
where t1.Col2 = 1
and t2.Col2 = 2
and t3.Col2 = 3
哪个输出
c11 d11 e11 color11 c12 d12 e12 color12 c13 d13 e13 color13
--- --- --- ------- --- --- --- ------- --- --- --- -------
1 1 5 green 1 2 0 blue 1 3 7 red
2 1 0 gray 2 2 10 yellow 2 3 8 orange
(2 row(s) affected)
我的猜测是你可能需要在你的解决方案中动态生成这个sql而不是我的静态解决方案。