如何在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