回答

收藏

Derby DB SQL,从行号开始选行

技术问答 技术问答 187 人阅读 | 0 人回复 | 2023-09-14

如何在derby中的SQL中选择“从X行到Y行”?
. d2 ?8 f! z* V* Z, J$ c% g, d8 S例如:
6 I4 _/ y, p8 l% y我想选择第15-30行,不是前15行。" }6 b) s2 z3 R4 d
从行号30开始选择所有行。
我尝试了LIMIT和ROWNUM不起作用,怎么在derby这样做?9 |% K! G7 `, t# C0 }. ^, Z8 {8 E
                                                                : K5 A" C9 p5 m
    解决方案:                                                               
! u3 {$ F) l: Q* d  R: D                                                                根据 回答常见问题    :+ Q# w. F' o# v* Z2 ]6 K3 l
Derby不支持LIMIT语法。Derby 10.4添加了ROW_NUMBER函数,Derby 10.7添加了OFFSET和FETCH子句。
; E1 R! ]0 [+ v, l. W1 rDerby还支持限制通过JDBC查询返回行数。
, j6 k! A: c9 z6 \! M& {   
& d2 }, q& @& y  ?/ Y+ `从10.4.1.3版本开始,Derby还支持使用ROW_NUMBER函数限制行数。( [0 Z2 q) M7 L# P2 o4 O
   
/ E. ^& R# h. ^( P) eROW_NUMBER函数也可用于选择以偏移量开始的有限行,例如:$ f7 f4 E' E' |% \4 ?
    - q* Y* J& ^9 ~- J) w- z2 y
SELECT * FROM (     SELECT ROW_NUMBER() OVER() AS rownum,myLargeTable.*     FROM myLargeTable ) AS tmp WHERE rownum > 200000 AND rownum 假如你用的是Derby 10.7或更高版本,则还可以使用! H( L( U; U  C( K! S
OFFSET和FETCH子句
+ U: f4 M3 x! |2 }# ~2 b4 o' c% j8 z/ |6 U
SELECT * FROM T ORDER BY I     OFFSET 10 ROWS     FETCH NEXT 10 ROWS ONLY
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则