Page 1 of 1

So fügen Sie die Sortierrichtung dynamisch in eine SQL-Abfrage ein

Posted: 06 Jan 2025, 20:13
by Guest
Ich habe dies am Ende meiner SQL-Abfrage:

Code: Select all

ORDER BY
CASE
WHEN :sortField = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN :sortDirection = 'DESC' THEN DESC END;
Dies führt jedoch zu einem Kompilierungsfehler (das „DESC“ bezieht sich auf das DESC ganz am Ende. Nicht auf die Zeichenfolgen davor):

Code: Select all

 expected, got 'DESC'
Das ist in Ordnung, aber es fällt mir schwer, es zu umgehen. SQL lässt mich einfach nicht zu.
Ich verwende Postgres 11. Ich injiziere Parameter mit Java-Code (Micronaut-Data. Nein, ich kann Pageable nicht verwenden).< /p>
So sieht das Obige aus, wenn ich tatsächlich die Werte für die Variablen eingebe:

Code: Select all

ORDER BY
CASE
WHEN 'creationDate' = 'creationDate' THEN update_.creation_date
ELSE update_.default_time_field
END,
CASE WHEN 'DESC' = 'DESC' THEN DESC END;