2014-01-31 48 views
1

我得到了一个sql问题。我有一个包含名为title的列的表,它在所有原始数据中都存储了一个像这样的字符串。颠倒SQL中的字符串

"Prenom - Nom (85)". 

我想知道如果在SQL的方式来改变该字符串是这样的:

"Nom - Prenom" 

这意味着,我想扭转它,然后删除了“(85) 。

预先感谢您

+0

你想删除最后四个charachters?还有“ - ”会永远在那里? –

+0

删除它,然后扭转第一个字符串si,因为我得到诺姆 - prenom – Mamadou

回答

0

丑得要命,几乎肯定不会对所有的情况下工作,但这个工作对你已经张贴的例子:。

select concat(
substring_index(substring_index("Prenom - Nom (85)"," (",1)," - ",-1), 
" - ", 
substring_index(substring_index("Prenom - Nom (85)"," (",1)," - ",1) 
); 
+0

上午去测试这个并给出反馈。 – Mamadou

2

是:

select concat(substring_index(left(col, length(col) - instr(reverse(col), ' ')), ' - ', -1), 
       ' - ', 
       substring_index(col, ' - ', 1) 
      ) 

此假设你想要的东西有点比摆脱'(85)'的更普遍的;它删除了最后一个字。