Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.066 c
2-1136560210
sx
2006-01-06 18:10
2006.01.22
Excel


14-1135639973
Пикселарт
2005-12-27 02:32
2006.01.22
Помогите подобрать ( нарисовать ) картиночки для кнопок ?


2-1136475014
Dot
2006-01-05 18:30
2006.01.22
Поиск файлов


2-1135916277
pic
2005-12-30 07:17
2006.01.22
как унать родителя


2-1135752119
john_mag
2005-12-28 09:41
2006.01.22
DateFormat





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский