Commande personnalisée avec préférence de devise dans Oracle SQL
De nombreuses tâches d'interrogation de données impliquent de trier des données en fonction de critères spécifiques. Lorsque l’ordre souhaité s’écarte des arrangements alphabétiques ou numériques standard, un ordre personnalisé devient nécessaire. Cet article traite d'un scénario dans lequel les transactions doivent être classées en fonction de la devise, avec une préférence spécifique pour placer l'USD en haut.
Pour réaliser cet ordre personnalisé, Oracle SQL propose deux approches :
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
Cette expression attribue une valeur de 1 à USD, garantissant qu'elle apparaît en premier, suivie des autres devises dans l'ordre spécifié.
order by decode(currency, 'USD', 1, 'BHT', 2, 'JPY', 3, 'MYR', 4, 5)
Ici, DECODE vérifie la valeur de la devise et renvoie la priorité numérique correspondante.
Remarque : Bien que ces méthodes fonctionnent pour les devises fournies dans la question, elles peuvent ne pas trier correctement les autres devises si elles ne sont pas explicitement incluses dans CASE ou DECODE. déclarations.
Personnalisation supplémentaire : Si vous souhaitez uniquement donner la priorité à l'USD, en traitant toutes les autres devises de la même manière, vous pouvez utiliser la technique suivante :
order by case when currency = 'USD' then '001' else currency end
Cette expression attribue une chaîne de caractères unique (« 001 ») en USD, qui apparaîtra en premier dans l'ordre alphabétique en raison de sa valeur ASCII inférieure.
Par en utilisant ces méthodes, vous pouvez personnaliser l'ordre des données en fonction de critères spécifiques, offrant ainsi des solutions flexibles et puissantes dans Oracle SQL.
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!