Bonjour,
C'est bête mais je veux faire :
select TBIDT from TB where TBIDT in (1, 3, 4, 2)
au lieu de me renvoyer les résultats dans l'ordre 1, 3, 4, 2
ça me fait l'ordre inverse!!!!! (2, 4, 3, 1).
C'est quoi ce bins?![]()
Bonjour,
C'est bête mais je veux faire :
select TBIDT from TB where TBIDT in (1, 3, 4, 2)
au lieu de me renvoyer les résultats dans l'ordre 1, 3, 4, 2
ça me fait l'ordre inverse!!!!! (2, 4, 3, 1).
C'est quoi ce bins?![]()
Bonjour,
Je ne vois pas le lien entre l'ordre des valeurs dans le IN et l'ordre des lignes dans le résultat...
Tatayo.
C'est vrai, mais moi j'aimerais donner une liste de critères dans le in et travailler ensuite dans un certain ordre dans ma boucle PL/SQL.
Dans ce cas il te faut une colonne calculée (par exemple avec decode, mais je ne sais pas si c'est du standard SQL ?) et trier le résultat sur cette colonne:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select TBIDT,decode(TBIDT,1,1,3,2,4,3,2,3) as ordre from TB where TBIDT in (1, 3, 4, 2) order by ordre
Tatayo.
Merci, ça marche ce type de requête...mais ça paraît diablement tordu.
Quelqu'un a plus simple ou c'est impossible de faire autrement?
Vous pouvez implémenter une table de référence / vue pour mettre vos valeurs en regard de l'ordre attendu.
Comme vous l'a expliqué tatayo, l'ordre d'un critère n'a strictement rien à voir avec l'ordre de sortie de vos données. Il y a un couac de conception quelque part.
Partager