第二次出现后用空白替换所有内容

时间:2013-06-26 21:40:34

标签: sql string tsql char

我有一个字符串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)

2 个答案:

答案 0 :(得分:3)

您可以使用:

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

CHARINDEX的可选第三个参数是起始位置,即字符串中应该开始寻找所需字符的位置,通过嵌套另一个CHARINDEX函数作为第三个参数,您可以找到第二个参数发生。 +1因此在嵌套'/'中找不到相同的CHARINDEX-1因此不会返回第二个'/'结果的一部分。

答案 1 :(得分:0)

您可以使用以下内容:

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

它将取代' a'与' c'并返回“ashish jcin'。