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