如何在SQL输出中复制记录

时间:2012-10-21 02:02:31

标签: sql ms-access duplicates

我的问题与How can SQL create duplicate records?中的问题相同。但是,我正在尝试在Access中执行此操作,并且这些解决方案似乎都不适用。最好,我想要一个SQL语句。

感谢。

2 个答案:

答案 0 :(得分:2)

该链接问题的已接受答案可以适用于Access。从用户界面创建num表。如果要使用DDL语句创建表,请使用此。

Dim strDdl As String
strDdl = "CREATE TABLE num (" & vbCrLf & _
    "i INTEGER PRIMARY KEY" & vbCrLf & _
    ");"
Debug.Print strDdl
CurrentProject.Connection.Execute strDdl

加载num表。在Access中,VBA过程很方便。

Public Sub Load_Num_table()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim x As Long

    Set db = CurrentDb
    Set rs = db.OpenRecordset("num", dbOpenTable, dbAppendOnly)
    For x = 1 To 100
        rs.AddNew
        rs!i = x
        rs.Update
    Next x
    rs.Close
    Set rs = Nothing
    Set db = Nothing
End Sub

准备好num表并将另一个表命名为 tableX 后,使用此SQL语句返回包含重复行的行集。

SELECT t.id, t.name
FROM
    tableX AS t
    INNER JOIN num 
    ON num.i <= t.count;

SELECT语句与@ypercube在其他问题的接受答案中建议的语句唯一真正的区别是INNER JOIN而不仅仅是JOIN。访问&#39; db引擎不会单独接受JOIN;您必须指定连接类型(内部,左侧或右侧)。

答案 1 :(得分:0)

插入TableName(字段1,字段2,...)   选择* From TableName;

如果你有主键会给出错误。