2013-06-26 84 views
0

我有一個字符串a/b/c我想在第二次出現「/」後將所有內容全部替換爲空白,所以我的結果應該是這樣的a/b 任何幫助將不勝感激。將第二次出現後的所有內容替換爲空

這裏是我累了沒有什麼工作

select reverse(left(reverse('a/b/c'), charindex('/', reverse('a/b/c')) -1)) 

SELECT SUBSTRING('a/b/c', 1, LEN('a/b/c')) 

SELECT STUFF('a/b/c', charindex('/', 'a/b/c'), 2, ''); 

select CHARINDEX('/','a/b/c') 

select right ('a/b/c', CHARINDEX('/','a/b/c')-1) 
+1

您可以提供一些通用的SQL代碼,用於迄今爲止所做的嘗試嗎? –

回答

3

您可以使用:

SELECT LEFT('a/b/c',CHARINDEX('/','a/b/c',CHARINDEX('/','a/b/c')+1)-1) 

CHARINDEX可選的第三個參數是起始位置,即在字符串中,它應該開始尋找通過嵌套另一個CHARINDEX函數作爲第三個參數,您可以找到第二個匹配項。 +1是這樣的,它在嵌套的CHARINDEX中找不到相同的'/',所以-1就是這樣,它不返回第二個'/'作爲結果的一部分。

+0

你是一個救命的人...感謝哥們 – user1570210

+0

@ user1570210請點擊此答案旁邊的複選標記,這樣可以關閉此問題並用於幫助他人。 –

0

您可以使用以下方法:

select stuff('ashish jain',charindex('a','ashish jain',charindex('a','ashish jain')+1),1,'c') 

它將代替 'A' 與 'C' 和迴歸 '阿希什jcin'。

相關問題