如何将现有表中7000条记录中的前1000条记录复制到另一个新表中

时间:2013-06-13 13:57:31

标签: sql sql-server-2005 database-table

我有一个包含超过7k记录的表A,现在我正在创建一个新表B.在我的新表B中,我只需要从表A中复制1000条记录,其中有超过7000条记录。

不适用条件,可能是7000的任何千条记录。

3 个答案:

答案 0 :(得分:3)

INSERT INTO TABLEB(Col1, Col2, .... colN)
    SELECT TOP 1000 Col1, Col2, .... colN FROM TABLEA

答案 1 :(得分:2)

在SQL Server中

SELECT top 1000 *
INTO newTableName
FROM oldTableName;

在MySQL中

SELECT *
INTO newTableName
FROM oldTableName Limit 1000;

答案 2 :(得分:0)

您可以在公用表表达式中使用ROW_NUMBER

WITH CTE AS(
   SELECT Col1, Col2, Col3, RN = ROW_NUMBER() OVER (ORDER BY Col1)
   FROM dbo.TableA
)
INSERT INTO dbo.TableB(Col1, Col2, Col3)
    SELECT Col1, Col2, Col3
    FROM CTE
    WHERE RN <= 1000

然后很容易改变应该导出的逻辑。您可以更改ORDER BY,应用PARTITION BY(例如复制重复项),使用多个ORDER BY逗号分隔或更改要导出的数字。