2013-09-17 6 views
3

Возможно, это очень просто, но мне нужна ваша помощь.
У меня есть таблица с данными, подобные этим:Выберите часть данных

NAME  VAL1 
135.name1 value1 
135.name2 value2 
135.name3 value3 

Если бы я хотел, чтобы выбрать данные в имени столбца Я хотел бы сделать что-то вроде этого:

select s.NAME 
    FROM MY_TABLE s 
where s.SCHEDULE_NAME like '135.%' 

    NAME   
    135.name1  
    135.name2  
    135.name3  

Но я хочу, чтобы выбрать данные в столбце NAME, но без «135».
Обратите внимание, что 135 не является константой. Это может быть, например, «34567». Таким образом, это может быть больше цифр.
Возможно ли это? Я хотел бы получить это:

NAME   
name1  
name2  
name3 
+0

Хотите удалить '135.' или вы просто хотите, чтобы выбрать значения, которые не имеют' 135.' в начале строки? –

+0

удалите 135. (или номер, который я знаю). – Nianios

ответ

2

Вы, вероятно, ищете это: -

SELECT REGEXP_REPLACE('135.name1', '^135.') FROM Table; 

и для Вашего случая: -

SELECT REGEXP_REPLACE(name, '^135.') FROM My_Table; 

или попробовать это: -

SELECT REPLACE('135.name1','135.','') COL1 FROM Table; 

EDIT: -

Чтобы сделать его более Dyanamic вы можете попробовать это: -

SELECT REGEXP_REPLACE(name, '^\d+\.') FROM My_Table; 
+0

Вот и все. Просто небольшая коррекция: SELECT REGEXP_REPLACE (имя, '^ 135.') FROM My_Table; – Nianios

+0

@Nianios: - Это сработало для вас ??? –

+1

Да абсолютно. Я должен подождать, пока я не смогу принять ваш ответ. Спасибо – Nianios

Смежные вопросы