Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.22;
Скачать: CL | DM;

Вниз

Substr в Oracle   Найти похожие ветки 

 
Дмитрий_Б ©   (2005-11-23 16:28) [0]

Здравствуйте.
Сервер Oracle, в табличке есть поле varchar2, содержащее такие данные:
45
55
25-78
89

мне нужно получить следующее
45
55
78
89
т.е. если в строке есть символ "-" то нужно получить строку после него, иначе взять строку полностью.
При использовании substr(fieldname, -1, 2) получаю:
5
5
8
9
причем в качестве третьего параметра ставил 1, 2, 3,... не меняется ничего.
Подскажите пож-та. Заранее спасибо


 
Val ©   (2005-11-23 16:38) [1]

select substr("25-78",-2,2) from dual.
но для решения данной задачи нужно искать позицию "-" еще.


 
Дмитрий_Б ©   (2005-11-23 16:49) [2]

Спасибо, правильно. Дальше я разберусь. Кстати, с какой позиции (в случае отрицательного второго параметра) происходит поиск ? Знаю только что с конца строки. Справочника к сожалению нет рядом.


 
dioman ©   (2005-11-23 16:51) [3]

select substr(test.q, instr(test.q, "-", -1)+1, length(test.q)-instr(test.q, "-", -1))
from test

test.q - текстовое поле


 
Val ©   (2005-11-23 16:51) [4]

с первого с конца :)
вот и справочник :
SUBSTR
SUBSTRB
varchar2 SUBSTR[B](varchar2 char, integer m{, integer n})
Returns a portion of char, beginning at character m, n characters long.

* If m is 0, it is treated as 1.
* If m is positive, Oracle counts from the beginning of char to find the first character.
* If m is negative, Oracle counts backwards from the end of char.
* If n is omitted, Oracle returns all characters to the end of char. If n is less than 1, a null is returned.

Floating-point numbers passed as arguments to SUBSTR are automatically converted to integers.
SUBSTRB are same as SUBSTR, except that the integer arguments expressed in bytes, rather than in characters. For a single-byte database character set, SUBSTRB is equivalent to SUBSTR.


 
dioman ©   (2005-11-23 16:53) [5]


> Кстати, с какой позиции (в случае отрицательного второго
> параметра) происходит поиск ? Знаю только что с конца строки.
>  Справочника к сожалению нет рядом.


instr(str, substr, a,b) возвращает позицию субстроки в строке.(b-тое вхождение) Если а отрицателен то поиск с конца.


 
Дмитрий_Б ©   (2005-11-23 16:57) [6]

Вот спасибо :)


 
Reindeer Moss Eater ©   (2005-11-23 17:25) [7]

select decode(instr(ttt,"-"),0,ttt,substr(ttt,1+instr(ttt,"-"),4000)) from mytable



Страницы: 1 вся ветка

Текущий архив: 2006.01.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
2-1136447864
Zhekson
2006-01-05 10:57
2006.01.22
Как сделать добавление недостающей части слова на подобие IE?


1-1134640866
Игорь Шевченко
2005-12-15 13:01
2006.01.22
Как правильно назвать методы ?


2-1135714123
Mahab
2005-12-27 23:08
2006.01.22
CheckBox


2-1136464825
ArtemESC
2006-01-05 15:40
2006.01.22
Процесс...


14-1135872610
ivan2
2005-12-29 19:10
2006.01.22
архивы