If you’re getting a SQLite error that reads ‘Parse error: near “LIMIT”‘, it could be that you’re trying to use the LIMIT
clause when using the VALUES
clause as a stand alone statement.
SQLite doesn’t allow us to apply the LIMIT
clause against the VALUES
statement.
However, there is a work around. Below is an example of how we can apply the LIMIT
clause against the VALUES
statement.
Example of Error
Here’s an example of code that produces the error:
VALUES
(1, 'Fred'),
(2, 'Wilma'),
(3, 'Barney')
LIMIT 2;
Result:
Parse error: near "LIMIT": syntax error (1, 'Fred'), (2, 'Wilma'), (3, 'Barney') LIMIT 2; error here ---^
This error tells us that the error occurred at the LIMIT
clause. Given the VALUES
statement doesn’t accept the LIMIT
clause, it’s no wonder we got the error.
Solution
Although we can’t apply the LIMIT
clause against our VALUES
statements, what we can do is place our VALUES
statement into a subquery, and then apply the LIMIT
clause to the outer query:
SELECT * FROM (
VALUES
(1, 'Fred'),
(2, 'Wilma'),
(3, 'Barney')
) AS t1
LIMIT 2;
Result:
column1 column2 ------- ------- 1 Fred 2 Wilma
This time it returned the limited results as expected.