Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将前1000条记录从现有表中的7000条复制到其他新表中_Sql_Sql Server 2005_Database Table - Fatal编程技术网

Sql 如何将前1000条记录从现有表中的7000条复制到其他新表中

Sql 如何将前1000条记录从现有表中的7000条复制到其他新表中,sql,sql-server-2005,database-table,Sql,Sql Server 2005,Database Table,我有一个表a,它包含超过7k条记录,现在我正在创建一个新表B。在我的新表B中,我只需要从表a复制1000条记录,表a有7000多条记录 不适用任何条件,它可以是7000条记录中的任意千条记录。您可以在公共表表达式中使用行号 INSERT INTO TABLEB(Col1, Col2, .... colN) SELECT TOP 1000 Col1, Col2, .... colN FROM TABLEA WITH CTE AS( SELECT Col1, Col2, Col3,

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

不适用任何条件,它可以是7000条记录中的任意千条记录。

您可以在公共表表达式中使用行号

INSERT INTO TABLEB(Col1, Col2, .... colN)
    SELECT TOP 1000 Col1, Col2, .... colN FROM TABLEA
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
然后,很容易更改应该导出的逻辑。您可以通过应用分区BYf.e来更改顺序。要复制副本,请使用逗号分隔的多个顺序或更改要导出的编号。

您可以在公用表表达式中使用行编号

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
然后,很容易更改应该导出的逻辑。您可以通过应用分区BYf.e来更改顺序。若要复制副本,请使用逗号分隔的多个顺序或更改要导出的编号。

在SQL Server中

SELECT top 1000 *
INTO newTableName
FROM oldTableName;
在MySQL中

SELECT *
INTO newTableName
FROM oldTableName Limit 1000;
在SQL Server中

SELECT top 1000 *
INTO newTableName
FROM oldTableName;
在MySQL中

SELECT *
INTO newTableName
FROM oldTableName Limit 1000;

如果您没有指定一个显式的ORDERBY,那么您将获得哪些行?SQL Server表中没有隐式排序…我没有使用任何order BY,因为问题明确说明了任何1000行。理想情况下,您希望根据业务案例获取感兴趣的行,这在本文中显然不可用?SQL Server表中没有隐式排序…我没有使用任何order BY,因为问题明确说明了任何1000行。理想情况下,您希望根据业务案例获取感兴趣的行,这在本文中显然不可用?SQL Server或MySQL表中没有隐式排序……是的,您是对的,SQL Server和MySQL中都没有隐式排序。事实上,他的问题与已排序的行无关,他只想移动1000行,而不考虑排序。如果您不指定显式顺序,您将获得哪些行?SQL Server或MySQL表中没有隐式排序……是的,您是对的,SQL Server和MySQL中都没有隐式排序。事实上,他的问题与排序的行无关。他只想移动1000行,而不考虑排序。