2009-06-18 6 views
1

Existe-t-il un moyen particulièrement simple de convertir un nombre comme "21.08" en "Twenty One et 08/100" en utilisant MySQL? Je sais que dans Oracle, il y avait un truc que vous pouviez utiliser pour travailler avec les dates de Julian. Il ferait le travail dans une ligne ou plus mais il ne semble pas fonctionner dans MySQL (puisqu'il ne supporte pas les dates de Julian).MySQL - Convertit le nombre en représentation anglaise

Ce n'est pas un problème particulièrement difficile dans un "vrai" langage de programmation mais l'idée de l'écrire comme une procédure ou une fonction stockée est épouvantable.

+1

Juste curieux - pourquoi? Je suis assez sûr que la réponse est "non" ou au moins "vous ne voulez pas faire cela avec MySQL si c'est le cas, la solution doit être effrayante! – jlarson

+0

avez-vous vu ce poste: http: //www.perlmonks. org /? node_id = 719893 –

+0

Voir le commentaire sur la réponse acceptée C'est le design WTF-digne hérité qui m'a conduit à poster cette question – colithium

Répondre

1

curieux de savoir pourquoi vous faites cela à la couche de base de données au lieu de la couche de présentation ...

Si vous avez vraiment, vraiment envie de le faire avec MySQL, vous pouvez créer deux tables de recherche appelées par exemple "ones" et "dizaines" qui stockent la représentation en anglais, puis effectuent une requête sur chaque chiffre. Extrayez les chiffres en convertissant le nombre en une chaîne et en effectuant une itération en arrière à partir de la virgule décimale, puis effectuez une recherche dans la table appropriée. Peut-être qu'une troisième table pourrait être utilisée pour fournir des chaînes comme "Cent", "Mille", etc.

C'est la solution la plus simple que je puisse voir, mais ça va être pénible à écrire et probablement assez cassant quand il s'agit de internationalisation. En outre, il encombre le schéma avec des tables de recherche qui n'ont rien à voir avec vos données.

Peut-être que l'écriture d'un User-Defined Function (UDF) serait une meilleure solution, même si j'imagine que cela prendra encore beaucoup de temps.

+0

Je pensais exactement comme vous, j'ai récemment hérité d'un désordre d'application et c'est juste le J'ai trouvé une meilleure solution, Crystal Reports a une fonction ToWords() qui est là où j'avais besoin de la voir quand même.Vous avez quand même donné une solution acceptable pour +1 et acceptée. – colithium

Questions connexes