Page 1 sur 1

SQL : Tri sur adresse IP (NETSTAT_INFO)

Posté : ven. 27 nov. 2020, 09:35:18
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

Re: SQL : Tri sur adresse IP (NETSTAT_INFO)

Posté : ven. 27 nov. 2020, 10:00:29
par nbonnet
Merci pour le coup de main !