5

我在 MS Access 中有一个表,其中的行有一个名为“重复”的列

我想要SELECT所有的行,由它们的“重复”列值重复。

例如,如果重复是 4,那么我应该返回 4 行相同的值。如果重复为 1,那么我应该只返回一行。

这与这个答案非常相似:

https://stackoverflow.com/a/6608143

除了我需要 MS Access 的解决方案。

4

3 回答 3

6

首先创建一个“数字”表,并用从 1 到 1000 的数字(或“重复”列可以具有的任何值)填充它:

CREATE TABLE Numbers
  ( i INT NOT NULL PRIMARY KEY
  ) ;

INSERT INTO Numbers 
  (i)
VALUES
  (1), (2), ..., (1000) ;

那么你可以使用这个:

SELECT t.*
FROM TableX AS t
  JOIN
     Numbers AS n
       ON n.i <= t.repeat ;
于 2013-09-02T06:07:38.700 回答
1

如果重复只有很小的值,您可以尝试:

select id, col1 from table where repeat > 0
union all
select id, col1 from table where repeat > 1
union all
select id, col1 from table where repeat > 2
union all
select id, col1 from table where repeat > 3
union all ....
于 2013-09-02T05:50:12.037 回答
0

您可以做的是检索一个“唯一”行并将该行/列复制到一个字符串中,但是您需要使用 for 循环从中获取多个副本。

于 2013-09-02T05:48:50.023 回答