2013-08-02 47 views
1

我需要增加一个翻译后文件,使文件中的产品名称,这个例子的第一列更改为一致的文本格式:SQL'如果和声明'?

"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