Maison >base de données >tutoriel mysql >Comment prioriser la devise USD dans les requêtes Oracle SQL ?
Ordre personnalisé dans Oracle SQL : prioriser les devises
Lors de l'interrogation de données contenant des transactions dans différentes devises, il est souvent nécessaire de trier les résultats en fonction sur une préférence personnalisée. Dans ce scénario spécifique, l'exigence est de placer la devise USD en haut de la commande, suivie du reste des devises triées par ordre croissant.
Oracle SQL propose plusieurs méthodes pour réaliser cet ordre personnalisé. Une approche consiste à utiliser l'expression CASE, qui attribue une valeur numérique ou une chaîne de caractères à chaque devise :
order by case when currency = 'USD' then 1 when currency = 'BHT' then 2 when currency = 'JPY' then 3 when currency = 'MYR' then 4 else 5 end
Alternativement, la fonction DECODE peut être utilisée pour effectuer le même mappage :
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
Cependant, cette méthode repose sur la spécification explicite des devises par ordre de priorité, ce qui peut devenir fastidieux si la liste des devises est longue ou soumise à des restrictions. changement.
Pour garantir un ordre cohérent quel que soit le nombre ou le type de devises dans les données, une autre approche consiste à convertir les devises en valeurs de caractères et à utiliser un ordre alphabétique :
order by case when currency = 'USD' then '001' else currency end
Étant donné que les caractères sont triés après des chiffres numériques, cette méthode place effectivement l'USD en haut de la commande et trie les devises restantes par ordre alphabétique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!