SQL 逆轴函数
SQL unpivot function
我有一个 table 有超过 100 行和 20 列(商店、销售额、规模、利润等)我怎样才能反透视到只有三列(商店、指标、价值)
当前状态
未来状态
我推荐使用 cross apply
:
select t.store, v.metric, v.value
from t cross apply
(values ('size', size),
('sales', sales),
('profit', profit),
. . .
) v(metric, value);
请注意,这要求 value
列具有兼容的类型。
虽然您必须列出所有列,但您可以使用查询或电子表格生成列表,从而简化编写查询的工作。
我有一个 table 有超过 100 行和 20 列(商店、销售额、规模、利润等)我怎样才能反透视到只有三列(商店、指标、价值)
当前状态
未来状态
我推荐使用 cross apply
:
select t.store, v.metric, v.value
from t cross apply
(values ('size', size),
('sales', sales),
('profit', profit),
. . .
) v(metric, value);
请注意,这要求 value
列具有兼容的类型。
虽然您必须列出所有列,但您可以使用查询或电子表格生成列表,从而简化编写查询的工作。