2014-01-31 62 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)'的更普遍的;它刪除了最後一個字。