MySQL - конвертировать число в английское представление - PullRequest
1 голос
/ 18 июня 2009

Существует ли особенно простой способ преобразования числа типа "21.08" в "Двадцать один и 08/100" с использованием MySQL?

Я знаю, что в Oracle был трюк, который вы могли бы использовать для работы с юлианскими датами. Это выполнит работу в строке или около того, но, похоже, не работает в MySQL (так как он не поддерживает юлианские даты).

Это не особенно сложная проблема в "реальном" языке программирования, но мысль о том, чтобы записать его как хранимую процедуру или функцию, ужасна.

1 Ответ

1 голос
/ 18 июня 2009

Интересно, почему вы делаете это на уровне базы данных, а не на уровне представления ...

Если вы действительно, действительно хотите сделать это с MySQL, вы можете создать две таблицы поиска, называемые, например. «единицы» и «десятки», которые хранят английское представление, а затем выполняют запрос для каждой цифры. Извлеките цифры, приведя число к строке и выполнив итерацию в обратном порядке от десятичной точки, а затем выполнив поиск в соответствующей таблице. Возможно, третья таблица могла бы использоваться для предоставления строк типа «Сто», «Тысяча» и т. Д.

Это самое простое решение, которое я вижу, но писать будет больно и, вероятно, довольно хрупко, когда дело доходит до интернационализации. Кроме того, он загромождает схему поисковыми таблицами, которые не имеют никакого отношения к вашим данным.

Может быть, написание пользовательской функции (UDF) было бы лучшим решением, хотя я думаю, что это все еще будет довольно трудоемким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...