需要架构建议

发布于 2024-11-06 18:54:29 字数 407 浏览 0 评论 0原文

这就是我想要实现的目标。

我有一个包含 16 个表的 SQL Server 数据库。

现在我需要生成一个平面文件,如下所示。

Field1, value1,value2, ..., valueN
Field2, value1,value2, ..., valueN
Field3, value1,value2, ..., valueN
.
.
.
FieldN, value1,value2, ..., valueN

其中字段与多个表中的列名称相似。然而它的名字并不相同。字段名称和列名称之间存在 1 对 1 的关系。

我该怎么做?

谢谢

导入为 XML 然后执行 XSLT 怎么样?

Here's what I am trying to achieve.

I have a SQL server database with 16 tables.

Now I need to generate a flat file as following.

Field1, value1,value2, ..., valueN
Field2, value1,value2, ..., valueN
Field3, value1,value2, ..., valueN
.
.
.
FieldN, value1,value2, ..., valueN

Where Fields are similar to Column names in multiple tables. However its not the same name. There is a 1 to 1 relation between Field and column names.

How should I do this?

Thank You

How about importing as XML and then doing and XSLT?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

寂寞美少年 2024-11-13 18:54:29

这可以通过几个步骤来实现:

  1. 从数据库加载数据以及列名。
  2. 将列名称转换为可接受的名称。
  3. 将所有数据转换为正确的格式。
  4. 生成文件。

整个事情就像你的问题一样通用。如果您提出具体问题,那么也许我们可以给您具体答案。

This can be achieved in few steps:

  1. Load data from database along with column names.
  2. Transform column names to something acceptable.
  3. Transform all data into correct format.
  4. Generate the file.

The whole thing is as generic as your question. If you asked specific question, then maybe we can give you specific answer.

划一舟意中人 2024-11-13 18:54:29

这里非常笼统,但您可以将表输出结果集加载到二维数组中,然后按列优先顺序遍历该数组以输出文件。

您还可以创建一个数组,将列位置或名称映射到字段名称。

伪代码:

fieldName[] = {"Field1","field2",....}

String results[][] = getDBResults()  
for( i=0;i<numCOls;i++ ) {  
    line = fieldName[i] + ",";  
      for(j=0; j<<numRows; j++) {  
          line += results[j][i] + ",";  
      }
      FILE.writeline(line[:-1]);  
}

Being very general here, but you could load the table output resultset into a 2d array and then traverse the array in column-major order to output the file.

You could also create an array that maps the columns positions or names to field names.

pseudocode:

fieldName[] = {"Field1","field2",....}

String results[][] = getDBResults()  
for( i=0;i<numCOls;i++ ) {  
    line = fieldName[i] + ",";  
      for(j=0; j<<numRows; j++) {  
          line += results[j][i] + ",";  
      }
      FILE.writeline(line[:-1]);  
}
压抑⊿情绪 2024-11-13 18:54:29

使用PIVOT

我写了一篇关于使用 PIVOT 的博客文章。您不需要进行与我所做的相同类型的聚合,但这应该可以帮助您入门。

Use PIVOT.

I wrote a blog post about using PIVOT. You won't need to do the same kind of aggregation that I was doing, but this should get you started.

百合的盛世恋 2024-11-13 18:54:29

为了获得您想要的字段名称,您可能需要一个中间映射表,您可以手动填写该表:

MyField         FieldNameNeeded
UnitSerial      Unit Serial
Address1        Address Line 1

To get your field names as you wish, you may need an intermediate mapping table, which you fill by hand:

MyField         FieldNameNeeded
UnitSerial      Unit Serial
Address1        Address Line 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文