Looks like you can also force the sort with a group by within a table selection, so, the following seems to resort my results, assuming you don't have duplicate values and you don't want to sort descending.
select cast(
json_objectAgg(trim(cast(ID as char(6))) value trim(DESC)
ABSENT ON
NULL) as varchar(500))
from (select * from qtemp/tstfil group by desc,id)
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Darren Strong
Sent: Monday, August 29, 2022 3:54 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Sort JSON_OBJECTAGG
It seems to be based on the RRN of the source file. If I create another file as a copy, but, populate it in the order I want, I get a better sort:
create table qtemp/tstfil2 as
(select * from qtemp/tstfil order by desc) with data
select cast(
json_objectAgg(trim(cast(ID as char(6))) value trim(DESC)
ABSENT ON
NULL) as varchar(500))
from qtemp/tstfil2
{"1":"TEST 1","3":"TEST 2","2":"TEST 5"}
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Darren Strong
Sent: Monday, August 29, 2022 3:47 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Sort JSON_OBJECTAGG
Sorry. I read it wrong. That didn't work at all, did it?
-----Original Message-----
From: Darren Strong
Sent: Monday, August 29, 2022 3:46 PM
To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: RE: Sort JSON_OBJECTAGG
This worked for me on a test file. You basically pre-sort the file you're reading from, rather than reading direct from the file:
select cast(
json_objectAgg(trim(cast(ID as char(6))) value trim(DESC)
ABSENT ON NULL) as varchar(500))
from (select * from qtemp/tstfil order by desc)
Results:
CAST function
{"1":"TEST 1","2":"TEST 5","3":"TEST 2"}
-----Original Message-----
From: MIDRANGE-L <midrange-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Justin Taylor
Sent: Monday, August 29, 2022 3:38 PM
To: MIDRANGE-L <midrange-l@xxxxxxxxxxxxxxxxxx>
Subject: Re: Sort JSON_OBJECTAGG
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Here's what I need in the end.
{"3":"Apples", "2":"Broccoli", "1":"Carrots"}
The closest I've gotten is this,
[{"3":"Apples"}, {"2":"Broccoli"}, {"1":"Carrots"}] from this statement.
JSON_ARRAYAGG(JSON_OBJECT(trim(cast(ID as char(6))) value DESCRIPTION ABSENT ON NULL) ORDER BY DESCRIPTION)
From there I just fixed the braces and brackets.
Thanks
date: Sat, 27 Aug 2022 10:16:59 +0200
from: "Birgitta Hauser" <Hauser@xxxxxxxxxxxxxxx>
subject: RE: Sort JSON_OBJECTAGG
It seems that JSON_OBJECTAGG currently does not support an extra ORDER
BY/SORT ... and specifiying a final Order By may be too late.
Mit freundlichen Gr??en / Best regards
Birgitta Hauser
Modernization ? Education ? Consulting on IBM i
"Shoot for the moon, even if you miss, you'll land among the stars."
(Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training
them and keeping them!"
?Train people well enough so they can leave, treat them well enough so
they don't want to.? (Richard Branson)
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/midrange-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.