有没有一种特别简单的方法可以使用 MySQL 将“21.08”之类的数字转换为“二十一和 08/100”?
我知道在 Oracle 中有一个可以使用的技巧,它涉及处理 Julian 日期。它会在一行左右完成工作,但它似乎在 MySQL 中不起作用(因为它不支持 Julian 日期)。
这在“真正的”编程语言中并不是一个特别困难的问题,但是将其写成存储过程或函数的想法是可怕的。
最佳答案
很好奇为什么您要在数据库层而不是在表示层执行此操作...
如果您真的非常想用 MySQL 来做这件事,您可以创建两个查找表,例如“ones”和“tens”存储英文表示,然后对每个数字执行查询。通过将数字转换为字符串并从小数点向后迭代来提取数字,然后在适当的表中执行查找。也许可以使用第三个表来提供诸如“Hundred”、“Thousand”等字符串。
这是我能看到的最直接的解决方案,但编写起来会很痛苦,而且在国际化方面可能非常脆弱。此外,它使用与您的数据没有任何关系的查找表使架构困惑。
也许写一个 User-Defined Function (UDF)将是一个更好的解决方案,但我认为它仍然会非常耗时。
关于MySQL - 将数字转换为英文表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1010646/