我有一个大容量插入的表(我以前不能修改它),我需要将“values”列中的所有行转换为单个列。除了“year”(从0到50)和“values”列之外,其他3列都用一个唯一的值填充(例如:在year 0中,size是“l”,color是“red”,price是“10”,这个size、color和price值在我的50年中都是不变的)。
输入表如下所示:
我想输出所有列中的“值”,例如“值0”“值1”“值2”“值3”等,其中数字0,1,2,3代表所考虑的年份。
CREATE TABLE #CURVE(
YEAR INT,
SIZE VARCHAR(100),
COLOR VARCHAR(100),
PRICE VARCHAR(100),
VALUES FLOAT
)
输出应为:
2条答案
按热度按时间6qftjkof1#
一个选项使用条件聚合:
您可以轻松地扩展
select
条款处理更多年。这是一个跨数据库的解决方案,通常比特定于供应商的
pivot
. 除此之外(不管它值多少钱),我发现它更容易理解。wlwcrazw2#
我们需要知道一年内你希望在“价值”列中有多少价值?否则,查询如下所示: