powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как обрезать строку до символа?
25 сообщений из 32, страница 1 из 2
как обрезать строку до символа?
    #37997622
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте, помогите обрезать строку до определенного символа. а точнее до скобки.
есть строка, например : иванов иван иванович (ваня, ИВ, ИИИ, бла бла бла)
нужно показать только иванов иван иванович, без скобок и того что в них.
как это сделать с помощью substr или regexp_substr
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997653
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабстр(текст, 1, инстр(текст, скобка
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997663
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx,
все почти получилось только видна скобка
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997667
Кристобаль Хозевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvk93,

Минус один :)
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997672
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кристобаль Хозевич,
зачем минус один? так точно не получается
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997679
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кристобаль Хозевич,
все понятно стало) только все равно не получается
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997681
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997684
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx,

select substr(nameu, -1 ,instr(nameu, '(')) from table_name


результат: последний символ
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997713
Кристобаль Хозевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvk93,

инстр, блин, минус один!


ЗЫ слово "блин" - служебное, его писать не надо.
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997716
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кристобаль Хозевич,
дело в том что -1 везде уже был. нигде не работает
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997718
Кристобаль Хозевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvk93,

Троль, прикидываешься или просто тормоз? Покажи уж, как не работает...
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997719
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кристобаль Хозевич,
ну видимо тормоз, а вы не могли бы написать как работать будет?
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997742
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvk93,

select substr(nameu,1,instr(nameu,'(') - 1 ) from table_name

SY.
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997744
ravt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
instr(nameu, '(')-1)
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997746
vvk93,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select str,
       substr(str, 1, instr(str, '(',1,1) - 1)  as x_str
  from (select 'иванов иван иванович (ваня, ИВ, ИИИ, бла бла бла) ' as str from dual)v

                      STR                                  X_STR
------------------------------------------------    --------------------
иванов иван иванович (ваня, ИВ, ИИИ, бла бла бла)   иванов иван иванович



Что я делаю не так?
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997760
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997763
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обрезалось везде, там где и нет скобок. Ладно, сделаю по другому, спс
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997786
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvk93обрезалось везде, там где и нет скобок. Ладно, сделаю по другому, спс

Код: plsql
1.
2.
3.
4.
5.
6.
select  case instr(nameu,'(')
          when 0 then nameu
          else substr(nameu,1,instr(nameu,'(') - 1)
        end
  from  table_name
/



SY.
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997804
vvk93
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,
спасибо большое, но я уже так и сделала
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997852
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу не предложить и такой вот говнокод :)
Код: plsql
1.
2.
3.
select nvl(substr(nameu, 1, instr(nameu,'(') - 1),
           nameu) nameu
  from  table_name
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37997860
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxНе могу не предложить и такой вот говнокод :)
Код: plsql
1.
2.
3.
select nvl(substr(nameu, 1, instr(nameu,'(') - 1),
           nameu) nameu
  from  table_name

и даже вроде вариант довольно быстрый :)
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SQL> set timing ON


SQL> SELECT count(*)
  FROM  seb_calc_tbl

  COUNT(*)
----------
   1112615
1 row selected.
Elapsed: 00:00:00.25


SQL> SELECT MAX(stat1)
  FROM  seb_calc_tbl

MAX(STAT1)                                        
--------------------------------------------------
перенос данных, тбл. SEB_CALC_                    
1 row selected.
Elapsed: 00:00:01.95


SQL> SELECT MAX(NVL(SUBSTR(stat1, 1, INSTR(stat1,'_') - 1),
           stat1))
  FROM  seb_calc_tbl

MAX(NVL(SUBSTR(STAT1,1,INSTR(STAT1,'_')-1),STAT1))
--------------------------------------------------
перенос данных, тбл. SEB                          
1 row selected.
Elapsed: 00:00:02.40


SQL> SELECT MAX(CASE INSTR(stat1,'(')
          WHEN 0 THEN stat1
          ELSE SUBSTR(stat1,1,INSTR(stat1,'(') - 1)
        END)
  FROM  seb_calc_tbl

MAX(CASEINSTR(STAT1,'(')WHEN0THENSTAT1ELSESUBSTR(S
--------------------------------------------------
перенос данных, тбл. SEB_CALC_                    
1 row selected.
Elapsed: 00:00:03.51

2.40 вариант с NVL против 3.51 варианта с CASE
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37998389
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

(если еще не надоело чепухой заниматься :) то попобуйте и

Код: plsql
1.
substr(s,1,instr(s||'(','(')-1)
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37998412
ёлы-палы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
regexp_substr(nameu, '^[^(]+') 
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37998429
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёлы-палы
Код: plsql
1.
regexp_substr(nameu, '^[^(]+') 


ну если про перформенс (уже) речь, то у регулярусов шансов нет
...
Рейтинг: 0 / 0
как обрезать строку до символа?
    #37998450
orawishну если про перформенс (уже) речь, то у регулярусов шансов нетЭто речь о выдуманном. Выиграть наносекунду триллион раз, чтобы потом при каждой надобности сопровождения кода пол часа пытаться понять витиевато оптимизированный вариант?
...
Рейтинг: 0 / 0
25 сообщений из 32, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / как обрезать строку до символа?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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