我收到非规范化文本文件,必须将其加载到规范化表中。

归一化表:

客户ID-类别-类别2-类别3-类别4
1-A-B-C-D

标准化后,它应如下所示:

客户编号-类别
1-A
1-B
1-C
1-D

编写实现此目标的T-SQL语句的最佳方法是什么(SQL Server 2008)?

最佳答案

使用UNPIVOT关键字:http://technet.microsoft.com/en-us/library/ms177410.aspx

自然,您将要用某种OpenRowSet查询替换[File]或使用导入/导出向导将数据获取到临时表中。

SELECT CustomerId, Category
FROM
(
   SELECT CustomerId, Category, Category2, Category3, Category4
   FROM [File]

) tblDenormalized
UNPIVOT
(
   Category FOR Column IN
   (Category, Category2, Category3, Category4)
) AS unpivot;

关于sql - 将非规范化文件中的数据加载到规范化表中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3442446/

10-12 04:48