我有一张这样的桌子:
Dates Time Item1 Item2 Item3
1-Jan 0:00 Bread Bread Peach
1-Jan 6:00 Lemon Peach Peach
1-Jan 12:00 Lemon Bread Bread
1-Jan 18:00 Bread Lemon Peach
2-Jan 0:00 Bread Lemon Peach
2-Jan 6:00 Bread Lemon Peach
… … … … …
我想实现这一目标:
Dates Times Item Food
1-Jan 0:00 Item1 Bread
1-Jan 0:00 Item2 Bread
1-Jan 0:00 Item3 Peach
1-Jan 6:00 Item1 Lemon
1-Jan 6:00 Item2 Peach
… … … …
我知道如何解开一列,问题是当我尝试同时解开所有列时,我不知道如何正确地建立联合
答案 0 :(得分:1)
这会产生与交叉应用相同的结果吗?
SELECT Dates, Time, Item, Food
From mytable
unpivot (
Food
for [Item] in ([Item1],[Item2],[Item3])
)AS p
答案 1 :(得分:0)
您可以将其与VALUES交叉应用
SELECT Dates, [Time], Item, Food
FROM yourtable
CROSS APPLY (VALUES
('Item1', Item1),
('Item2', Item2),
('Item3', Item3)) as Items(Item, Food);
测试here