MySQL удалить нулевой трейлинг - PullRequest
6 голосов
/ 23 декабря 2011

Есть ли в MySQL встроенная функция, которая удаляет завершающие нули справа?

У меня есть образцы, и я хочу, чтобы мой вывод был таким:

 1.0    ==>   1
 1.50   ==>   1.5
10.030  ==>  10.03
 0.50   ==>   0.5
 0.0    ==>   0

Ответы [ 3 ]

9 голосов
/ 21 ноября 2013

Самый простой способ, просто добавьте ноль!

Примеры:

SET 
    @yournumber1="1.0", 
    @yournumber2="1.50",
    @yournumber3="10.030",
    @yournumber4="0.50",
    @yournumber5="0.0"
;

SELECT 
    (@yournumber1+0),
    (@yournumber2+0),
    (@yournumber3+0),
    (@yournumber4+0),
    (@yournumber5+0)
;

+------------------+------------------+------------------+------------------+------------------+
| (@yournumber1+0) | (@yournumber2+0) | (@yournumber3+0) | (@yournumber4+0) | (@yournumber5+0) |
+------------------+------------------+------------------+------------------+------------------+
|                1 |              1.5 |            10.03 |              0.5 |                0 |
+------------------+------------------+------------------+------------------+------------------+
1 row in set (0.00 sec)

Если столбец, из которого получено значение, имеет тип DECIMAL или NUMERIC, сначала приведите его к строке, чтобы убедиться, что преобразование происходит ... например:

SELECT (CAST(`column_name` AS CHAR)+0) FROM `table_name`;

Для более короткого пути, просто используйте любую встроенную строковую функцию, чтобы выполнить приведение:

SELECT TRIM(`column_name`)+0 FROM `table_name`;
7 голосов
/ 18 января 2012

это решает мою проблему, используя это:

(TRIM(TRAILING '.' FROM(CAST(TRIM(TRAILING '0' FROM setpoint)AS char)))) AS setpoint

пример:

mysql> SELECT testid, designationid, test, measure,
              (TRIM(TRAILING '.' FROM(CAST(TRIM(TRAILING '0' FROM setpoint)AS char)))) AS setpoint,
              (TRIM(TRAILING '.' FROM(CAST(TRIM(TRAILING '0' FROM tmin)AS char)))) AS tmin,
              (TRIM(TRAILING '.' FROM(CAST(TRIM(TRAILING '0' FROM tmax)AS char)))) AS tmax,
       FROM    tests
0 голосов
/ 22 февраля 2014

У меня была похожая проблема в ситуации, когда я не мог изменить ни код, ни запрос SQL, но мне было позволено изменить структуру базы данных. Поэтому я изменил формат столбца с DECIMAL на FLOAT, и это решило мою проблему.

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