使用 SQL Server 2008,以及这个完全虚构的场景和数据,我如何转置这个(不完整的)数据库表?
决赛桌应包含其城市中的每个城镇以及与该城镇和城市相关的您(不同)动物的每种组合。
我一直在考虑一个支点,但找不到可以解决这个特定问题的解决方案。
我希望了解这个概念,因此我可以将该技术应用于我的真实数据,这有点复杂。
使用 SQL Server 2008,以及这个完全虚构的场景和数据,我如何转置这个(不完整的)数据库表?
决赛桌应包含其城市中的每个城镇以及与该城镇和城市相关的您(不同)动物的每种组合。
我一直在考虑一个支点,但找不到可以解决这个特定问题的解决方案。
我希望了解这个概念,因此我可以将该技术应用于我的真实数据,这有点复杂。
您需要的解决方案是 CROSS JOIN 与自己的表三次,然后过滤掉双精度和三倍。
你可以检查这个小提琴
代码是:
SELECT T1.Country,
T1.Town,
T1.Pet AS Pet1,
T2.Pet AS Pet2,
T3.Pet AS Pet3
FROM Pets T1
CROSS JOIN Pets T2
CROSS JOIN Pets T3
WHERE T1.Pet <> T2.Pet
AND T2.Pet <> T3.Pet
AND T1.Pet <> T3.Pet
AND T1.Country = T2.Country
AND T1.Country = T3.Country
AND T1.Town = T2.Town
AND T1.Town = T3.Town