从一个表到一个大列的多列?

时间:2012-02-15 20:44:13

标签: sql ms-access

我不知道世界上最好的方法是什么。我有一个非常大的列数组,每列有1-25行与之关联。我需要能够将所有内容组合成一个大列,如果可能的话,跳过空白。这是Access可以做的事情吗?

a   b   c   d   e  f  g  h 
3   0   1   1   1  1  1  5
3   5   6   8   8  3     5
    1   1   2   2  1     5 
    4   4   2   1  1     5
                   1     5

每列中没有空格,但每列中的数字都不同。它们需要从左到右添加,所以a,b,c,d,e,f。并且在A中的第二个3之后需要将0设置在第一个空白单元中.H中的前5个需要直接在1 in g之后,没有空白。

1 个答案:

答案 0 :(得分:1)

所以你想得到一个结果:

3
3
0
5
1
4
1
6
1
4

等?

以下是我如何处理这个问题。将数组插入带有自动编号列的工作表中(对于保留数据所在的顺序很重要,数据库不会保护订单,除非您可以给它们一些要排序的东西)名为id 以及数组列。

使用自动编号列创建一个最终表格(请参阅上面有关您需要自动编号的说明)以及您想要作为决赛桌的列。

为工作表中的每个列运行单独的插入语句,并按照您希望数据的顺序运行它们。

所以插入看起来像:

insert table2 (colA)
select columnA from table1 order by id

insert table2 (colA)
select columnB from table1 order by id

insert table2 (colA)
select columnC from table1 order by id

现在当你select columnA from table2 order by id时,你应该得到你需要的结果。