How AS 400 sorting data?

Hi Gurus,
I have a requests to sort data based on AS 400 sorting order. below is example: the data is sorted by ascending order. could anybody explain how AS 400 sort data?

IMM00007
07918607
1242
423 

It may just be a simple numeric sort, similar to how Unix will too if you ask it to. Letters are seen as sorted before numbers, however zero (a zero value, even if 75 characters long) will be before them all. A shorter number of leading zeros is sorted before longer ones, of the same value.

You might illustrate it with this:-

printf "a
1
b
000000000000000000000000000000000000000
g
3
c
09
0"|sort -n

I hope that this helps,
Robin

as400 collating sequence at DuckDuckGo

3 Likes

"collating sequence" is the key!
While most language (locale) settings in Unix are based on the ASCII sequence (numbers before characters), IBM seems to stick to the EBCDIC sequence (numbers after characters).
Maybe it is tunable? Search for "as400 how to set collating sequence"

3 Likes