Главная страница
    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.033 c
14-1135500103
TUser
2005-12-25 11:41
2006.01.22
Давно возникло мнение


14-1135751116
Ega23
2005-12-28 09:25
2006.01.22
Нужна толковая информация про Flash


14-1135538589
Ihor Osov'yak
2005-12-25 22:23
2006.01.22
Есть пробел в знаниях.


14-1135706486
Serg1981
2005-12-27 21:01
2006.01.22
Ограничения БД Access


6-1128941707
Dimich1978
2005-10-10 14:55
2006.01.22
Не проходит PING на несколько адресов(IP)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский