【发布时间】:2014-10-18 22:18:08
【问题描述】:
不幸的是,有一张表格被设计成以下格式(最多 39 个而不是 3 个):
TABLE:Joined_Table
Key Nm_1 Nm_2 Nm_3 Age1 Age2 Age3 State1 State2 State3
1 Bob Sally John 12 13 14 Fl. AL. NY.
2 Jack Billy Jean 15 15 83 AL. TX. WA.
在开始 SharePoint 迁移之前,我需要将这些项目行挑出为单独的项目。我需要将数据复制到与此格式类似的另一个表中:
表:dbo.Line_Items
K FK Name_T Age_T State_T
1 1 Bob 12 Fl.
2 1 Sally 13 AL
3 1 John 14 NY
4 2 Jack 15 AL
5 2 Billy 15 TX
6 2 Jean 83 WA
被告知要考虑使用“交叉申请”,我打算这样做,但我想知道是否有其他人有经验或建议以干净的方式执行此操作(请记住,这个最高可达 39)。我不需要非常动态的东西,因为我不介意必须输入每个列类型 39 次。 例如,我正在考虑创建表,然后在 Nm_1、Age1、State1 上为每一行插入一行,然后将 1 替换为 2,等等。但即使使用这种方法,我也不确定如何在Nm_1、Age1 和 State1 用于原始表中的所有行实例。
【问题讨论】:
-
你可能需要结合使用 UNPIVOT 和 PIVOT
标签: sql sql-server database tsql relational-database