Mysql
 sql >> база данни >  >> RDS >> Mysql

ORDER BY за валутни стойности

Трябват ви две колони:

  • един за стойността, float/double (или цяло число), които могат да бъдат подредени, използвани в операции като суми и т.н.
  • един за валутата (знак (3) след стандарт ISO 4217 ) използвани за други цели (показване, може би преобразуване и т.н.)

Съхраняването както на стойност, така и на символ вътре в varchar е безсмислено, особено тъй като позицията на символа на валутата варира от страна до държава (може да бъде в началото или в края), може да има интервал между символа и стойността, или не и т.н.

Като се има предвид това, ако не искате да промените масата си, нещо подобно може да работи:

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. MySQL сървърът изчерпва паметта или не се стартира

  2. Как да внедрите двупосочен уникален индекс в множество колони

  3. MySQL код за грешка 1235

  4. java - DataSource за самостоятелно приложение - няма сървър на приложения

  5. Нуждаете се от експертна помощ за решаване на незначителни промени в заявката за пространствени данни