Maison >base de données >tutoriel mysql >Comment prioriser la devise USD dans les requêtes Oracle SQL ?

Comment prioriser la devise USD dans les requêtes Oracle SQL ?

DDD
DDDoriginal
2024-12-23 19:29:17814parcourir

How to Prioritize USD Currency in Oracle SQL Queries?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn