MySQL - 将数字转换为英文表示

问题描述:

是否有一种使用MySQL将诸如“21.08”之类的数字转换为“Twenty One和08/100”的特别简单的方法?MySQL - 将数字转换为英文表示

我知道在Oracle中有一个技巧可以用来处理Julian日期。它可以在一行左右完成工作,但它似乎不能在MySQL中工作(因为它不支持Julian日期)。

在“真正”的编程语言中,这不是一个特别难的问题,但是把它写成存储过程或函数的想法是可怕的。

+1

只是好奇 - 为什么?我很肯定答案是“不”,或者至少“你不想用MySQL来做到这一点,如果是这样,解决方案必须是可怕的! – jlarson 2009-06-18 03:36:00

+0

你看到这篇文章:http://www.perlmonks。 org /?node_id = 719893 – 2009-06-18 05:38:32

好奇,为什么你这样做是在数据库层,而不是在表示层...

如果你真的想使用MySQL要做到这一点,您可以创建名为例如两个查找表“ones”和“ten”存储英文表示,然后对每个数字执行查询。通过将数字转换为字符串并从小数点开始迭代,然后在相应的表中执行查找来提取数字。也许第三张桌子可以用来提供像“百”,“千”等字符串。

这是我可以看到的最直接的解决方案,但写入时会很痛苦,而且可能相当脆弱国际化。此外,它使用与数据无关的查找表来混淆架构。

也许写一个User-Defined Function (UDF)会是一个更好的解决方案,但我想它仍然会相当耗时。