我在MS Access中有一个表,其中的行有一个名为“repeat”的列
我希望SELECT
所有行,并按其“重复”列值进行复制。
例如,如果repeat是4,那么我应该返回4行相同的值。如果repeat是1,那么我应该只返回一行。
这与这个答案非常相似:
https://stackoverflow.com/a/6608143
除了我需要MS Access的解决方案。
答案 0 :(得分: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 ;
答案 1 :(得分: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 ....
答案 2 :(得分:0)
您可以做的是检索一个“唯一”行并将此行/列复制到一个字符串中,但需要使用for循环从中复制许多副本。