2013-10-26 14 views
9

Làm cách nào tôi có thể chọn từ hàng X thành hàng Y trong SQL trong derby?Derby DB SQL, chọn hàng bắt đầu từ số hàng

Ví dụ:

  • Tôi muốn chọn hàng 15-30, nhưng không dẫn đầu 15.
  • Chọn tất cả các hàng bắt đầu từ số hàng 30.

tôi đã cố gắng LIMIT và ROWNUM không hoạt động, làm thế nào tôi có thể làm điều đó trong trận derby?

Trả lời

11

Theo FAQ:

Derby không hỗ trợ cú pháp LIMIT. Tuy nhiên, Derby 10.4 đã thêm hàm ROW_NUMBER và Derby 10.7 đã thêm mệnh đề OFFSET và FETCH.

Derby cũng hỗ trợ giới hạn số hàng được truy vấn trả về thông qua JDBC.
< ...>

Bắt đầu với việc phát hành 10.4.1.3 Derby cũng hỗ trợ hạn chế số lượng hàng bằng cách sử dụng chức năng ROW_NUMBER.
< ...>

Hàm ROW_NUMBER cũng có thể được sử dụng để chọn một số hạn chế về hàng bắt đầu với một bù đắp, ví dụ:
< ...>

SELECT * FROM ( 
    SELECT ROW_NUMBER() OVER() AS rownum, myLargeTable.* 
    FROM myLargeTable 
) AS tmp 
WHERE rownum > 200000 AND rownum <= 200005; 

Nếu bạn đang sử dụng Derby 10.7 hoặc mới hơn, bạn cũng có thể sử dụng OFFSET and FETCH clauses:

SELECT * FROM T ORDER BY I 
    OFFSET 10 ROWS 
    FETCH NEXT 10 ROWS ONLY 
Các vấn đề liên quan