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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: So fügen Sie die Sortierrichtung dynamisch in eine SQL-Abfrage ein

by Guest » 07 Jan 2025, 04:37

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;

Top