我有一個原始表#TEMP_TABLE
與的整數索引字段ID
我需要通過在相關領域ID_R
其又通過一些條件過濾它接合到另一個表FILTER
進行過濾。這些條件在WHILE
循環中提供。在循環結束時,我需要將原始的#TEMP_TABLE中的過濾結果反饋回去。插入結果爲原始表
所以目前我在做類似的東西
WHILE [loop condition]
BEGIN
SELECT #TEMP_TABLE.ID INTO #TMP_FILTERED_TABLE
FROM #TEMP_TABLE INNER JOIN FILTER ON #TEMP_TABLE.ID = FILTER.ID_R
WHERE FILTER.FIELD1 = [parameter1 from loop] AND FILTER.FIELD2 = [parameter2 from loop]
TRUNCATE TABLE #TEMP_TABLE
INSERT INTO #TEMP_TABLE (ID)
SELECT ID FROM #TMP_FILTERED_TABLE
DROP TABLE #TMP_FILTERED_TABLE
END -- END LOOP
過濾表是相當龐大所以加入有執行雙重任務 - 它通過ID限制過濾器,以一個較小的子集,然後在過濾器通過自身的過濾WHERE子句限制輸出結果。隨着循環過程結果變得越來越小,因爲#TEMP_TABLE變小了。
要求是循環在最初的#TEMP_TABLE中有最終結果之後。
有沒有更好,更優化,最優化的方法來做到這一點?
Oook ...請問downvoters請評論理由downvotes?是「你試過了什麼?」或「不是一個編程問題」或「因爲」而置之不理。請註明, –