sql >> Database >  >> RDS >> Mysql

ORDER BY voor valutawaarden

Je hebt twee kolommen nodig:

  • één voor de waarde, een float/double (of een geheel getal) die kan worden besteld, gebruikt in bewerkingen zoals sommen, enz.
  • een voor de valuta (een char (3) volgens de ISO 4217-standaard ) gebruikt voor andere doeleinden (weergave, misschien conversie, enz.)

Het is onzinnig om zowel waarde als symbool in een varchar op te slaan, vooral omdat de positie van het valutasymbool van land tot land verschilt (kan aan het begin of aan het einde zijn), er kan een spatie tussen het symbool en de waarde staan, of niet, enz.

Dat gezegd hebbende, als je je tafel niet wilt veranderen, zou zoiets kunnen werken:

ORDER BY CAST(
  REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
  AS DECIMAL(10,2)
)


  1. Een kolomnaam met een spatie selecteren in MySQL

  2. Hoe kan ik ervoor zorgen dat mijn Java-toepassing zich bij verbinding met Oracle identificeert?

  3. Bestandsnamen extraheren uit een pad MYSQL

  4. MYSQL - Query verwijderen met Join