Sql server 取消激发具有多个(非规范化)值的多个重复列

Sql server 取消激发具有多个(非规范化)值的多个重复列,sql-server,multiple-columns,unpivot,Sql Server,Multiple Columns,Unpivot,我有一个包含多个列的表,如下所示 +-------+----------------+---------+---------+-----------+------------+-----------+-----------+------------+---------+-----------+------------+ | Name | Email | Address | Order1 | Shipping1 | Date1 | Order2 | Shipp

我有一个包含多个列的表,如下所示

+-------+----------------+---------+---------+-----------+------------+-----------+-----------+------------+---------+-----------+------------+
| Name  |     Email      | Address | Order1  | Shipping1 |   Date1    |  Order2   | Shipping2 |   Date2    | Order3  | Shipping3 |   Date3    |
+-------+----------------+---------+---------+-----------+------------+-----------+-----------+------------+---------+-----------+------------+
| John  | john@abcd.com  |     123 | Rock    |       123 | 02/11/2017 | Computer  |       123 | 07/11/2017 | Pen     |       123 | 12/11/2017 |
| Jane  | jane@abcd.com  |     234 | Scissor |       234 | 03/11/2017 | Laptop    |       234 | 08/11/2017 | Pencil  |       234 | 13/11/2017 |
| Julie | julie@abcd.com |     345 | Paper   |       345 | 04/11/2017 | Mouse     |       345 | 09/11/2017 | Clips   |       345 | 14/11/2017 |
| Jaden | jaden@abcd.com |     456 | Spock   |       456 | 05/11/2017 | Screen    |       456 | 10/11/2017 | Pins    |       456 | 15/11/2017 |
| Jabba | jabba@abcd.com |     678 | Lizard  |       678 | 06/11/2017 | Pen Drive |       678 | 11/11/2017 | Notepad |       678 | 16/11/2017 |
+-------+----------------+---------+---------+-----------+------------+-----------+-----------+------------+---------+-----------+------------+
我想在T-SQL中将这些列解压成这样的行

+-------+----------------+---------+-----------+----------+------------+
| Name  |     Email      | Address |   Order   | Shipping |    Date    |
+-------+----------------+---------+-----------+----------+------------+
| John  | john@abcd.com  |     123 | Rock      |      123 | 02/11/2017 |
| John  | john@abcd.com  |     123 | Computer  |      123 | 07/11/2017 |
| John  | john@abcd.com  |     123 | Pen       |      123 | 12/11/2017 |
| Jane  | jane@abcd.com  |     234 | Scissor   |      234 | 03/11/2017 |
| Jane  | jane@abcd.com  |     234 | Laptop    |      234 | 08/11/2017 |
| Jane  | jane@abcd.com  |     234 | Pencil    |      234 | 13/11/2017 |
| Julie | julie@abcd.com |     345 | Paper     |      345 | 04/11/2017 |
| Julie | julie@abcd.com |     345 | Mouse     |      345 | 09/11/2017 |
| Julie | julie@abcd.com |     345 | Clips     |      345 | 14/11/2017 |
| Jaden | jaden@abcd.com |     456 | Spock     |      456 | 05/11/2017 |
| Jaden | jaden@abcd.com |     456 | Screen    |      456 | 10/11/2017 |
| Jaden | jaden@abcd.com |     456 | Pins      |      456 | 15/11/2017 |
| Jabba | jabba@abcd.com |     678 | Lizard    |      678 | 06/11/2017 |
| Jabba | jabba@abcd.com |     678 | Pen Drive |      678 | 11/11/2017 |
| Jabba | jabba@abcd.com |     678 | Notepad   |      678 | 16/11/2017 |
+-------+----------------+---------+-----------+----------+------------+
我在谷歌上搜索并查看了与此相关的其他帖子,但无法获得三个值:(


感谢您的帮助!

您根本不需要在此处使用
UNPIVOT

您将能够将三个非规范化的订单合并回扁平化输出,如下所示:

SELECT name, Email, Address, Order1 AS Order, Shipping1 as Shipping, Date1 AS Date
FROM Table1
UNION ALL
SELECT name, Email, Address, Order2, Shipping2, Date2
FROM Table1
UNION ALL
SELECT name, Email, Address, Order3, Shipping3, Date3
FROM Table1
ORDER BY Name, Date;


(列名由
联合
中的第一个选择设置,
顺序
应用于最终的联合数据)

您根本不需要在此处使用
取消PIVOT

您将能够将三个非规范化的订单合并回扁平化输出,如下所示:

SELECT name, Email, Address, Order1 AS Order, Shipping1 as Shipping, Date1 AS Date
FROM Table1
UNION ALL
SELECT name, Email, Address, Order2, Shipping2, Date2
FROM Table1
UNION ALL
SELECT name, Email, Address, Order3, Shipping3, Date3
FROM Table1
ORDER BY Name, Date;

(列名由
联合
中的第一个选择设置,
顺序
应用于最终联合数据)

可能重复的