×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




Hello Daniel

Thank you for thinking with me. This indeed works!

In previous preparation I already read about the difference between the case statement and the case expression. I guess the applicability in order-by clauses is one example where these differences surface.


Kind regards, Met vriendelijke groet,



Martijn van Breden

lead software architect


Hi Martijn,

Am 03.09.2024 um 14:15 schrieb Martijn van Breden <m.vanbreden@xxxxxxxxxxxxxxxxxxxxxxxxxx>:

select REFKL, ORDAT, ORDNR
from TOVF
order by
case :SortCode
when 'A' then ' ORDAT asc '
when 'D' then ' ORDAT desc '
else ' REFKL asc '
end
limit 10;

This ORDER BY expression doesn't work - as you can only have an expression instead of a column name. So this should work:

order by
case :SortCode when 'A' then ORDAT end asc,
case :SortCode when 'D' then ORDAT end desc,
case when :SortCode not in ('A', 'D') then REFKL end asc

Lets look into it in detail, when :SortCode is set - lets assume its 'D' then the cases will evaluate into this

order by
null asc,
ordat desc,
null asc

So - as the cases, which are not true, evaluate to null, their sorting doesn't effect the result set sequence.

With a case, you can switch between 2 or more columns to sort, but you cannot switch the ascending or descending.

HTH
Daniel
--
This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.