天天看點

ORACLE和SYBASE資料庫中實作資料查詢條數限制的SQL語句實作

一、概述

對于某些需要通過資料庫與大量資料打交道的軟體來說,處理性能相當的重要。為了保證軟體能夠将所有資料處理完而不至于崩潰,分批處理的思想應運而生。分批處理的具體做法是編寫SQL語句,每次傳回規定條數的資料給軟體處理,待這一批資料處理完之後,再接着處理下一批。

本文通過對具體的資料庫表(tb_employeeinfo)的操作過程,展示了ORACLE和SYBASE資料庫中分批處理SQL語句的編寫方法。

二、ORACLE資料庫中的處理

首先,建立tb_employeeinfo表,其定義如下:

接着,在tb_employeeinfo表中插入7條資料,如下:

如果我們想要一次性從tb_employeeinfo表中查詢出5條資料,該如何處理呢?

ORACLE資料庫中有一個rownum用在查詢(select)語句中來限制每次執行之後傳回的資料條數。例如,本次要從tb_employeeinfo表中傳回5條資料,則編寫SQL語句如下:

執行結果如下:

三、SYBASE資料庫中的處理

在SYBASE資料庫中,可以利用“set rowcount X”語句來實作查詢條數的限制。例如,本次要從tb_employeeinfo表中傳回5條資料,則編寫SQL語句如下:

注意,在設定了查詢條數為5并查詢成功之後,一定要有“set rowcount 0”語句,否則在下次執行的時候,就最多隻能傳回5條資料。

例如,我們先執行如下語句:

則此時傳回的結果與上面一樣。

再執行如下語句(本意是要将7條語句都查詢出來):

但此時的結果仍然隻傳回了5條,與我們的本意不符。

是以,在SYBASE資料庫中,“set rowcount X”語句一定要與“set rowcount 0”語句配對使用。

四、總結

相比本文中的資料表,在實際的軟體項目中的資料表的字段要更多一些,資料量也要更大一些,在查詢語句中也有可能會帶有一些其它條件,但基本的SQL語句編寫模式是一緻的。大家可以參照來編寫對應的SQL語句。

本人微信公衆号:zhouzxi,請掃描以下二維碼:

ORACLE和SYBASE資料庫中實作資料查詢條數限制的SQL語句實作