2012-05-08 8 views
15

オフセットと無制限のsql liteデータベースを照会しようとしています。スキップ(オフセット)のみを使用するSqlLite(制限なし)

SELECT [Id], [Name], [IntValue], [IntNulableValue] FROM [Product] OFFSET 10 

ただし、制限がある場合(LIMIT 10 OFFSET 10)、オフセットクエリを実行できます。

これは、sql liteが私に与えるエラーです。

SQLite error near "10": syntax error 

前もって感謝します!

答えて

33

LIMITを-1に設定するだけです。例えば

SELECT * FROM table LIMIT -1 OFFSET 10 
+0

Mysqlが同じアイデアを実装するのは素晴らしいことでしょう – elipoultorak

+0

-1は2^64-1よりも頻繁に見られるようですが、全体的なクリーン度の点では両方とも魔法の数字です。クリーンなソリューションは、別々のユースケースを提供する場合、制限とオフセットを分けることです。チョコレートとミルクは一緒に偉大な行くが、時には私は他のものなしで1つをしたい! – aaaaaa

7

SQLiteによって理解されるSQLページでは、OFFSETがLIMITなしでは理解されないことがわかります。

http://sqlite.org/lang_select.html

同じドキュメントによれば:LIMIT式は負の値に評価された場合

、その後、返される行の数には上限がありません。

+0

は私が制限long.MaxValue、感謝を加える必要がありますように見えます! –

関連する問題