2011-09-28 133 views
-2

例如這個SQL語句返回1K行拆分導致SQL查詢

SELECT * FROM tableName WHERE someCondition

我的問題是:是否有可能通過使用WHERE

1)拆分結果集,以10分的結果集,然後

  • 1st。將返回0% - 10%,

  • 2nd。 10% - 20%,

  • 等。

2)削減50之間的範圍 - 第150行

+2

什麼RDBMS?什麼定義了結果集的順序?桌子上有主鍵嗎?你真的想要10個不同的結果集或只是某種「組」列嗎? –

+0

你能解釋你爲什麼試圖達到這個目的嗎?是否有結果的分頁 - 如果是這樣的話,因爲有很多好的解決方案... –

+0

'什麼RDBMS ???',基本語法爲SQL-92標準 – mKorbel

回答

1

如果您正在使用Oracle數據庫,這是非常簡單的。

你可以使用ROWNUM關鍵字以下方式來實現這一目標任務..

select * from 
( 
    select tb.*,rownum t_count from table_name tb 
) ss 
where ss.t_count >= @min_value and ss.t_count <= @max_value 

其中@min_value和@max_value是你想要得到什麼樣的數據範圍...... 其實它完全可以在內部查詢和臨時表的概念。

這就是爲什麼它能夠在一次拍攝所有數據時提供良好的性能。

+0

感謝您的想法,+ 1 – mKorbel

+0

這個踢我需要,這是爲大型機,因爲語法比內置選項意味着更長的時間意味着Oracle/MsSQL/Mysql,最後我用了BETWEEN – mKorbel