Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ORDER BY dla wartości walutowych

Potrzebujesz dwóch kolumn:

  • jeden dla wartości, liczba zmiennoprzecinkowa/podwójna (lub liczba całkowita), którą można uporządkować, użyć w operacjach takich jak sumowanie itp.
  • jeden dla waluty (znak(3) zgodny z norma ISO 4217 ) używane do innych celów (wyświetlanie, może konwersja itp.)

Przechowywanie zarówno wartości, jak i symbolu w varchar nie ma sensu, zwłaszcza że pozycja symbolu waluty różni się w zależności od kraju (może być na początku lub na końcu), może być spacja między symbolem a wartością, czy nie itp.

Biorąc to pod uwagę, jeśli nie chcesz zmieniać stołu, coś takiego może zadziałać:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie MySQL do grupowania danych w różne zakresy

  2. Wyniki SQL MIN i MAX z dodanym operatorem DISTINCT w MySQL

  3. Dane znaków hiszpańskich MySql

  4. Przechowuj obrazy w bazie danych MySQL

  5. Parsowanie JSON do tabeli MySQL