Search code examples
sqlpostgresqlsql-limit

How to set LIMIT within a conditional statement; POSTGRESQL


I want to order the result by id in descending order and then LIMIT the number of rows obtained based on a @condition

ORDER BY id DESC
IF @condition is TRUE THEN  LIMIT 1
ELSE nothing
END IF

Solution

  • You could use CASE:

    ORDER BY id DESC
    LIMIT CASE WHEN @condition THEN 1 END;
    

    DBFiddle Demo

    LIMIT NULL is the same as omitting the LIMIT clause