我收到非规范化文本文件,必须将其加载到规范化表中。
归一化表:
客户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/