Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.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 从表中获取一定数量的行_Sql_Sql Server - Fatal编程技术网

Sql 从表中获取一定数量的行

Sql 从表中获取一定数量的行,sql,sql-server,Sql,Sql Server,我有一个大表,有7亿行和几十列。我需要它作为左表执行左联接操作 然而,由于它是如此之大,时间消耗是无法承受的。所以我想分成几个较小的表,并以多处理方式执行任务 我知道有SSIS包可用于此,但我被迫不使用它 此外,我知道向每一行添加行id是一种简单的方法,但不幸的是,我无法对表进行更改 那么,我可以知道如何实现我的目标吗 非常感谢。创建一个临时表,并将记录的子集插入其中,然后加入临时表。您也可以根据需要在临时表中创建一个额外的ID列。如果需要使用sql脚本的特定行数,请使用 像这样: SELECT

我有一个大表,有7亿行和几十列。我需要它作为左表执行左联接操作

然而,由于它是如此之大,时间消耗是无法承受的。所以我想分成几个较小的表,并以多处理方式执行任务

我知道有SSIS包可用于此,但我被迫不使用它

此外,我知道向每一行添加行id是一种简单的方法,但不幸的是,我无法对表进行更改

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


非常感谢。

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

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

像这样:

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;
使用CTE和行号


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

试试CTE,它可能对您有用。@Bharadwaj您好,谢谢您的提示,您能给我举个例子吗?谢谢
;WITH cte_tbl AS
(
    SELECT *,
        ROW_NUMBER() OVER (ORDER BY [First Name]) AS RowNumber
    FROM your_table
)
SELECT * FROM cte_tbl
WHERE RowNumber < 100