0
如果需要更多信息來回答此問題,請確實添加註釋。使用笛卡爾積聚尋呼
我們有一個查詢返回笛卡爾積。由於有很多結果,可能會有大量的物體被水化。我們希望在數據庫端進行簡單的分頁,因此速度很快,所以它只從第n行的第n個頁面開始n次結果,其中n表示爲100.
我們遇到的麻煩是正在對查詢完成distinct
以便僅返回必要的行。但是,這最終會過濾結果,所以你得到的數量少於100.
因此,即使我們有頁碼,我們也不知道從哪裏開始或停止,而不用查詢來查看起始點(即我們不能使用rownum),並有可能循環,直到我們得到100個結果,你就明白了。這很混亂。
如果需要,我們可以直接做SQL,但重構表格不是一個選項。
無論哪種方式,我無法想象我們是第一次遇到這種情況,所以我想知道是否有辦法做到這一點。
在此先感謝!
編輯: @ nicolas78發表了評論,準確地描述了情況。
我對你在做什麼有一個模糊的想法。基本上你不知道如何處理結果集的第101行,因爲它基於兩個參數,並且大量的組合會被扔掉?如果是這樣,我不知道如何預測這一點(我認爲問題不是一次或一次分頁,而是跳到第5頁那樣你不知道如何得到它們的問題,對不對?)。這並沒有那麼有用 - 只是試圖澄清條件。 – Nicolas78 2010-07-28 14:59:52
是的,這正是問題所在。即使我們要求100個結果,我們所能得到的結果也只有67個。我們不知道請求頁面n時開始的行是什麼 – 2010-07-28 15:24:17