如何选择表的一部分用于使用SQL导出?

时间:2017-06-07 20:31:31

标签: sql sql-server sql-server-2008 sql-server-2012

我有一个大约有2500万行的数据集。我想将它导出到ACCESS。但是,我无法将其整体导出。所以我输出了前1000万行。我使用了下面显示的代码。

SELECT TOP (10000000) [TRD_EVENT_DT]
  ,[TRD_EVENT_TM]
  ,[TRD_STCK_CD]
  ,[TRD_PR]
  ,[TRD_TUROVR]
FROM [trade92].[dbo].[trade]

现在,我想选择第二个1000万行,然后选择最后的5百万行,将它们导出到ACCESS。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用CTE:

;WITH YourQuery AS (

    SELECT ROW_NUMBER() OVER (ORDER BY TRD_EVENT_TM DESC) as RowNumber, *
    FROM trade

    )
SELECT * FROM YourQuery 
WHERE RowNumber BETWEEN 10000001 AND 20000000

假设您使用的是SQL Server,而不是其他当前标记的RDBMS之一。要获取最终的行集,请将WHERE子句更改为:

WHERE RowNumber > 20000000

答案 1 :(得分:0)

您还可以在查询中使用偏移和提取:

SELECT [TRD_EVENT_DT]
,[TRD_EVENT_TM]
,[TRD_STCK_CD]
,[TRD_PR]
,[TRD_TUROVR]
FROM [trade92].[dbo].[trade]
ORDER BY [TRD_EVENT_DT] 
OFFSET 10000000 ROWS
FETCH NEXT 5000000 ROWS ONLY