Функция замены sql, которая соответствует целым словам

Я хочу заменить некоторый текст в поле, поэтому у меня есть следующее утверждение:

UPDATE INVENTORY
SET INV_DESCRIPTION = REPLACE(INV_DESCRIPTION, '5 ml', '5ml (1/6oz)')

Проблема заключается в том, что этот оператор заменит такие строки, как «5 мл», «15 мл», «150 мл» и т. д. строкой замены. Я хочу, чтобы эта функция соответствовала всему слову и просто искала «5 мл».


person seb    schedule 27.06.2011    source источник
comment
какое программное обеспечение базы данных вы используете? В Oracle regexp_replace выполнит то, что вы хотите.   -  person Samuel    schedule 27.06.2011
comment
Как выглядит все поле (INV_DESCRIPTION), которое вы пытаетесь обновить? Это последовательно?   -  person Simon    schedule 27.06.2011
comment
Привет, Самуэль, это называется "Pervasive"   -  person seb    schedule 27.06.2011
comment
Это для БизнесВидения? AccPac тоже использует Pervasive, но...   -  person OMG Ponies    schedule 27.06.2011
comment
@OMG - Повсеместные инструменты также используют его, к сожалению. Я использую некоторые из их других инструментов, но не реализацию SQL.   -  person JNK    schedule 27.06.2011


Ответы (1)


Вы можете добавить предложение WHERE, которое должно подойти вам довольно близко:

...Your Current Query...
WHERE INV_DESCRIPTION LIKE '5ml%'
OR INV_DESCRIPTION LIKE '% 5ml%'

Который будет обновлять только записи, которые начинаются с 5ml или имеют 5ml с пробелом перед ним, что исключает 15ml или 25ml и т. д.

Это предполагает SQL Server.

person JNK    schedule 27.06.2011