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

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

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


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

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


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

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

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

SY.
...
Рейтинг: 0 / 0
14.10.2012, 20:14
    #37997744
ravt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
instr(nameu, '(')-1)
...
Рейтинг: 0 / 0
14.10.2012, 20:16
    #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
14.10.2012, 20:43
    #37997760
vvk93
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
Всем спасибо
...
Рейтинг: 0 / 0
14.10.2012, 20:48
    #37997763
vvk93
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
обрезалось везде, там где и нет скобок. Ладно, сделаю по другому, спс
...
Рейтинг: 0 / 0
14.10.2012, 21:42
    #37997786
SY
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
14.10.2012, 22:07
    #37997804
vvk93
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
SY,
спасибо большое, но я уже так и сделала
...
Рейтинг: 0 / 0
14.10.2012, 23:35
    #37997852
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
Не могу не предложить и такой вот говнокод :)
Код: plsql
1.
2.
3.
select nvl(substr(nameu, 1, instr(nameu,'(') - 1),
           nameu) nameu
  from  table_name
...
Рейтинг: 0 / 0
14.10.2012, 23:47
    #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
15.10.2012, 12:51
    #37998389
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как обрезать строку до символа?
andreymx,

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

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


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


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