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


он работал на строке "1.1110"
...
Рейтинг: 0 / 0
Обрезать символы в строке
    #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
Обрезать символы в строке
    #39785273
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrovichvanya,

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

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


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