SQL : Tri sur adresse IP (NETSTAT_INFO)

RPG (3 et 4, free), CL, SQL, etc...
Répondre
ybosse
Messages : 5
Enregistré le : mar. 03 nov. 2020, 17:34:12

SQL : Tri sur adresse IP (NETSTAT_INFO)

Message par ybosse »

Bonjour,

je me suis heurté à un petit soucis sur les adresses IP en utilisant le QSYS2.NETSTAT_INFO.
Lors du tri sur adresse IP, une addresse genre 172.25.2.1 est sytématiquement classée aprés une 172.25.111.xxx

Pour obtenir un classement plus logique, il faudrait que les IP soient "complètes" :
Exemple : 172.25.2.1 devrait devenir 172.025.002.001


Pour contourner ce petit problème de classement sans passer par une fonction supplémentaire à développer et implémenter
vous pouvez tester le code ci-dessus
VALUES(
RIGHT( REPEAT('0',2) concat REGEXP_SUBSTR('172.25.2.1', '[\.]{0}[0-9]{1,3}', 1, 1) , 3 )
concat '.' concat
RIGHT( REPEAT('0',2) concat REGEXP_SUBSTR('172.25.2.1', '[\.]{0}[0-9]{1,3}', 1, 2) , 3 )
concat '.' concat
RIGHT( REPEAT('0',2) concat REGEXP_SUBSTR('172.25.2.1', '[\.]{0}[0-9]{1,3}', 1, 3) , 3 )
concat '.' concat
RIGHT( REPEAT('0',2) concat REGEXP_SUBSTR('172.25.2.1', '[\.]{0}[0-9]{1,3}', 1, 4) , 3 )
)
;

Plus qu'à faire l'ORDER BY sur ce résultat, et le classement des IP apparait plus propre...

Il y a surement d'autres moyen plus simples peut-être mais je n'ai pas trouvé...

Espérant que ce petit bout de code puisse aider.

Bonne journée

nbonnet
Messages : 198
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: SQL : Tri sur adresse IP (NETSTAT_INFO)

Message par nbonnet »

Merci pour le coup de main !
Nathanaël

Répondre