2013-08-02 3 views
1

мне нужно увеличить файл посттрансляционном так, что названия продуктов в файле таким образом, что первый столбец, например изменяется в согласованном формате текста:SQL 'If and statement'?

"PRODUCT1 1000MG" >> "PRODUCT 1 1000 MG" 

"PRODUCT 2 1500MG" >> "PRODUCT 2 1500 MG" 

"PRODUCT3 PLATED 200MG" >> "PRODUCT 3 PLATED 200 MG" 

И так далее, с приблизительно 50 линий различных продуктов быть запрошенным. Единственное, что я могу придумать, это сложный вложенный IF оператор ....?

Заранее благодарен!

+0

Если бы вы могли сделать скрипт с использованием кода плюс mysql, вы можете использовать регулярное выражение для перестройки текста. В вашем случае используйте его, чтобы добавить пробел до и после набора чисел. – Shawn

+2

Ответ в значительной степени зависит от формата «источника», в котором следуют названия вашего продукта. Есть ли какие-то закономерности? Если они непредсказуемы, вы никогда не сможете обновить их все. –

+0

Я согласен с Jan. Это просто проблема с данными, и, похоже, не существует общей логики для применения. –

ответ

2

Если вы можете добавлять таблицы можно использовать таблицу с перевода и обновление с присоединиться:

oldval     newval 
"PRODUCT1 1000MG"  "PRODUCT 1 1000 MG" 
"PRODUCT 2 1500MG"  "PRODUCT 2 1500 MG" 
"PRODUCT3 PLATED 200MG" "PRODUCT 3 PLATED 200 MG" 

Запрос будет выглядеть как-то так:

UPDATE tab 
    SET val = t.newval 
    FROM MyTable tab 
    INNER JOIN Transl t ON t.oldval = tab.val 
+0

Данные берутся как полная запись текста в каталог. то есть. не конкатенация или какой-либо другой процесс. Двигаясь вперед, текстовые записи в конечном итоге будут согласованы (поскольку продукты «выпадают»), и дальнейшее увеличение не требуется. – user2646194