如何在SQL查询结果中复制行

时间:2010-10-20 06:55:47

标签: ms-access

SELECT * FROM TABLE1
ID      Name 
1       SOF
2       USER

我想查询哪一个,两个或四个....次ID = 1在行

在Ms.Access中对此有何疑问?

ID      Name 
1       SOF
1       SOF
1       SOF
2       USER

3 个答案:

答案 0 :(得分:1)

以下示例使用SQL Server的CTE语法。

目前,@ID被选中@Count次,所有其他记录都被选中一次。无论你想要什么ID,都可以很容易地将它扩展到任何数量。

<强>设置

DECLARE @Table TABLE (ID INTEGER, Name VARCHAR(32))
DECLARE @Count INTEGER
DECLARE @ID INTEGER

SET @Count = 3
SET @ID = 1

INSERT    INTO @Table 
          SELECT 1, 'SOF'
UNION ALL SELECT 2, 'USER'

SQL声明

;WITH Multiple AS (
  SELECT  ID, Name, cnt = 1
  FROM    @Table
  WHERE   ID = @ID
  UNION ALL
  SELECT  ID, Name, cnt = cnt + 1
  FROM    multiple
  WHERE   cnt < @Count
)
SELECT  ID, Name
FROM    Multiple
UNION ALL
SELECT  ID, Name
FROM    @Table
WHERE   ID <> @ID

答案 1 :(得分:0)

此解决方案依赖于LabelCount字段(列)具有所需数量的标签,以及Coiunter表,其字段为Num,其中包含从1到最大标签数的整数:

SELECT Id, [Name]
FROM Table1, [Counter]
WHERE Counter.Num<=[LabelCount]

答案 2 :(得分:0)

在Access报告中,可以在不更改SQL的情况下完成。这篇非常古老的知识库文章对此进行了解释,并且我已经将它用于生产使用近15年了!

How to Skip Used Mailing Labels and Print Duplicates

相关问题