如何使用每行的标题进行转轴?

时间:2016-03-01 16:52:01

标签: sql sql-server sql-server-2014 mssql-jdbc

我正在从旧系统转换,从旧系统中获取数据的唯一方法是使用其内部导出功能。这会为每个标题生成一个带有新行的文件(几乎像XML)。我需要找到一种方法来使用SQL将这些数据转换为MSSQL数据库。以下是数据外观的示例。

15号; 123
姓John Doe 电话5555551234
注意
电子邮件
密码1234 5432 5672 2212
结束 15号; 124号 姓名Foo Bar
电话5555559876
注意疯狂的人
电子邮件Email@server.domain
密码0 0 0 0
结束 (数据以这种格式重复)

线条中的数据由标签分隔 列是每一行,列名是第一个单词,因此第一行的列名称为“Number”,第二行为“Name”,依此类推。

将数据导入MSSQL数据库的最佳方法是什么?我曾想过使用PIVOT,但标题会出现在其他所有行中。

任何想法的家伙?

1 个答案:

答案 0 :(得分:0)

您可以先在文件上运行正则表达式。 (我很抱歉我的正则表达能力差!)

类似于:(在Notepad ++上测试

查找

^.[^\s]+\s(.*)\r\n.[^\s]+\s(.*)\r\n.[^\s]+\s(.*)\r\n.[^\s]+\s(.*)\r\n.[^\s]+\s(.*)\r\n.[^\s]+\s(.*)\r\n[E][N][D]

替换为:

"\1";"\2";"\3";"\4";"\5";"\6"

应该可以使用SSIS甚至BCP加载到SQL。