我在 MS Access 中有一个表,其中的行有一个名为“重复”的列
我想要SELECT
所有的行,由它们的“重复”列值重复。
例如,如果重复是 4,那么我应该返回 4 行相同的值。如果重复为 1,那么我应该只返回一行。
这与这个答案非常相似:
https://stackoverflow.com/a/6608143
除了我需要 MS Access 的解决方案。
我在 MS Access 中有一个表,其中的行有一个名为“重复”的列
我想要SELECT
所有的行,由它们的“重复”列值重复。
例如,如果重复是 4,那么我应该返回 4 行相同的值。如果重复为 1,那么我应该只返回一行。
这与这个答案非常相似:
https://stackoverflow.com/a/6608143
除了我需要 MS Access 的解决方案。
首先创建一个“数字”表,并用从 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 ;
如果重复只有很小的值,您可以尝试:
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 ....
您可以做的是检索一个“唯一”行并将该行/列复制到一个字符串中,但是您需要使用 for 循环从中获取多个副本。