从 table 中获取一定数量的行

Get certain number of rows from a table

我有一个很大的 table,它有 7 亿行和几十列。我需要它作为左 table.

执行左连接操作

不过,既然这么大,耗费的时间是承受不起的。所以我想分成几个较小的 tables 并以多处理方式执行任务。

我知道有 SSIS 包可用于此,但我不能使用它。

此外,我知道为每一行添加行 ID 是一种简单的方法,但不幸的是,我无法更改 table。

那么,我可以知道如何实现我的目标吗?

非常感谢。

创建一个#temp table,并将记录的子集插入其中,然后加入#temp table。您也可以根据需要在#temp table 中创建一个额外的 ID 列。

如果您需要使用 sql-脚本的特定行数,请使用 fetch-offset

像这样:

SELECT First Name + ' ' + Last Name FROM big_table ORDER BY First Name OFFSET 15 ROWS;

SELECT First Name + ' ' + Last Name FROM big_table ORDER BY First Name OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY;

使用 CTErow_number()

;WITH cte_tbl AS
(
    SELECT *,
        ROW_NUMBER() OVER (ORDER BY [First Name]) AS RowNumber
    FROM your_table
)
SELECT * FROM cte_tbl
WHERE RowNumber < 100

您可以获取任何范围内的记录。