Sql 如何将前1000条记录从现有表中的7000条复制到其他新表中
我有一个表a,它包含超过7k条记录,现在我正在创建一个新表B。在我的新表B中,我只需要从表a复制1000条记录,表a有7000多条记录 不适用任何条件,它可以是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,
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行,而不考虑排序。