Есть ли способ обрезать хвост 0 в десятичных и вернуть в виде строки в SQL? - PullRequest
1 голос
/ 21 мая 2011

В моей базе данных есть поле "TestNumber numeric (27,10)", оно имеет значение, подобное этим числам:

56.1234567800
 0.0000000010
 1.0010100000

Convert(Varchar(28),TestNumber) преобразует вышеуказанный TestNumber в VARCHAR.

Есть ли какая-либо функция в sql (я использую sql server 2008R2) для обрезки хвостовых '0 в десятичных разрядах, чтобы я мог получить эти строки:

'56.12345678'
 '0.000000001'
 '1.00101'

1 Ответ

3 голосов
/ 21 мая 2011

Есть ли какая-нибудь функция в sql

Нет, не то, что я знаю. Вы можете заменить все '0' на ' ', использовать rtrim и снова поставить '0'.

with T(N) as
(
 select 56.1234567800 union all
 select 0.0000000010 union all
 select 1.0010100000 union all
 select 100
)

select
  replace(rtrim(replace(convert(varchar(28), T.N), '0', ' ')), ' ','0') as N
from T

Результат:

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