Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезать символы в строке / 7 сообщений из 7, страница 1 из 1
13.03.2019, 11:34
    #39785256
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
Добрый день, подскажите как обрезать символы в строке
Есть строка вида "1.11102" нужно обрезать символы после точки(.) идущие после нуля т.е. должно получится "1.111"
Изначально сделал такой вариант
Код: plsql
1.
select round('1.11102', length(rtrim('1.11102', '0'))) from dual;


он работал на строке "1.1110"
...
Рейтинг: 0 / 0
13.03.2019, 11:47
    #39785270
alwan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
petrovichvanya,

Код: plsql
1.
2.
with tab as (select '1.11102' n from dual)
 select substr(n,1,instr(n,'0',instr(n,'.'))-1) from tab 
...
Рейтинг: 0 / 0
13.03.2019, 11:51
    #39785273
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
petrovichvanya,

что должно быть на выходе если на входе будет строка '1.10101'
...
Рейтинг: 0 / 0
13.03.2019, 11:54
    #39785278
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
Щукина Анна,
"1.1"
...
Рейтинг: 0 / 0
13.03.2019, 11:56
    #39785280
petrovichvanya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
alwan,

спасибо, то что нужно
...
Рейтинг: 0 / 0
13.03.2019, 14:27
    #39785409
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
petrovichvanyaспасибо, то что нужно

А что если дробной части или 0 в ней нет? Предложенный вариант вернет NULL. Так-что скорее всего:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
with tab as (
             select '1.11102' n from dual union all
             select '1.11112' n from dual union all
             select '111102' n from dual
            )
select  n,
        substr(n,1,instr(n,'0',instr(n,'.'))-1) x,
        substr(n,1,instr(n || '0','0',instr(n || '.','.'))-1) y
  from  tab
/

N       X                            Y
------- ---------------------------- ----------------------------
1.11102 1.111                        1.111
1.11112                              1.11112
111102                               111102

SQL> 



SY.
...
Рейтинг: 0 / 0
13.03.2019, 14:30
    #39785412
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обрезать символы в строке
petrovichvanyaalwan,

спасибо, то что нужно

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> ed
Wrote file afiedt.buf

  1  with tab as (select '111102' n from dual)
  2*  select substr(n,1,instr(n,'0',instr(n,'.'))-1) from tab
SQL> /

S
-


SQL>


?

....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Обрезать символы в строке / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]