2014-12-10 2 views
0

У меня есть столбец таблицы с точкой с запятой значений, показанных следующим образом:SQL заявление, чтобы удалить часть строки, используя шаблон

table1.ID | table1.column1 
----------------------------------------------------- 
    1  | test1=aaa;test2=bbb;test3=ccc; 
    2  | test1=akkaa;test2=bkjkjb;test3=cckjklc; 
    3  | test1=ajaa;test2=bjhjbb;test3=sss; 

мне нужно, чтобы удалить все test2=xxxx, где xxxx может быть любым значением.

Я начал следующий запрос, который мне нужно заполнить; как я могу указать данный шаблон/выражение?

UPDATE table1 
SET column1 = Replace(column1, 'test2=', '') 
WHERE column1 Is Not Null; 

Заранее спасибо

+3

который RDBMS это MySQL/оракул? –

+0

«xxxx может быть любого значения», может быть даже «xx; x»? – syllabus

+0

Я использую DB JET (то есть Access) – dotNetdev2807

ответ

1

Для MSSQL:

Попробуйте этот запрос:. (Я не использовал какой-либо узор [Я не знаю, возможность] То, что я сделал, это заменить строку содержание test2 = что-то;. с пустой строкой функция CHARINDEX используется для обнаружения test2 и расположение tEST3)

UPDATE table1 SET Column1 = 
     REPLACE(Column1, substring(Column1, CharIndex('test2=', Column1), 
      (CharIndex('test3=', Column1) - CharIndex('test2=', Column1))), '') 

--Live Demo Here

.
0

для оракула:

update table1 
set column1=substr(table1.column1,1,instr(table1.column1,';',1,1)-1)||substr(table1.column1,instr(table1.column1,';',1,2)); 
commit; 
Смежные вопросы