2015-01-07 47 views
1

我有一張擁有700萬行和數十列的大表。我需要它作爲左表執行左連接操作。從表格中獲取一定數量的行

但是,由於它太大,耗時已經超出了實惠。所以我想分成幾個較小的表格並以多處理方式執行任務。

我知道有SSIS包可用於此,但我受限制不使用它。

另外,我知道這是一個簡單的方法來添加一個行ID到每個行,但不幸的是,我不能改變表。

那麼,我可以知道如何實現我的目標嗎?

非常感謝。

+1

試試'CTE',它可能適合你。 – Bharadwaj

+0

@Bharadwaj嗨,謝謝你的提示,你能告訴我一個例子嗎?謝謝。 – ChangeMyName

回答

1

使用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 

您可以獲取任何範圍的記錄。

-1

創建一個#temp表,並將記錄的一個子集插入它,然後加入到#temp表。您可以在#temp表中創建一個額外的ID列以滿足您的需要。

1

如果您需要使用sql-script的某些行數,請使用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;