【发布时间】:2018-03-12 09:58:21
【问题描述】:
需要取消透视列出期权和期权价格的多个列。可以使用以下代码创建示例起始数据集:
CREATE TABLE testtable (
ID int,
OptionA nvarchar(25),
OptionACost decimal(16,4),
OptionB nvarchar(25),
OptionBCost decimal(16,4),
OptionC nvarchar(25),
OptionCCost decimal(16,4) )
INSERT INTO testtable (ID, OptionA, OptionACost, OptionB, OptionBCost,
OptionC, OptionCCost)
VALUES
('1', 'Red Paint', '11.98', 'Leather Trim', '20.00', 'Matte Finish', '5.66'),
('2', 'Blue Paint', '13.48', 'Suede Trim', '16.00', 'Gloss Finish', '3.82'),
('3', 'Black Paint', '10.00', 'Leather Trim', '20.00', 'Matte Finish', '5.66'),
('4', 'Red Paint', '11.98', 'No Trim', '0.00', 'Matte Finish', '5.66');
我的理想结果示例数据集是使用以下代码创建的:
CREATE TABLE testtableresult (
ID int,
OptionName nvarchar(25),
OptionCost decimal(16,4))
INSERT INTO testtable2 (ID, OptionName, OptionCost)
VALUES
('1', 'Red Paint', '11.98'),
('2', 'Blue Paint', '13.48'),
('3', 'Black Paint', '10.00'),
('4', 'Red Paint', '11.98')
('1', 'Leather Trim', '20.00'),
('2', 'Suede Trim', '16.00'),
('3', 'Leather Trim', '20.00'),
('4', 'No Trim', '0.00')
('1', 'Matte Finish', '5.66'),
('2', 'Suede Trim', '3.88'),
('3', 'Matte Finish', '5.66'),
('4', 'Matte Finish', '5.66');
【问题讨论】:
-
添加标签,sql server。
标签: sql sql-server pivot unpivot