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)
4

2 回答 2

3

您可以使用:

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

可选的第三个参数CHARINDEX是起始位置,即它应该在字符串中的哪个位置开始寻找所需的字符,通过嵌套另一个CHARINDEX函数作为第三个参数,您可以找到第二个出现的位置。is 所以它在 nested 中+1找不到相同的内容,is 所以它不会将 2nd作为结果的一部分返回。'/'CHARINDEX-1'/'

于 2013-06-26T21:44:47.383 回答
0

您可以使用以下内容:

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

它将用“c”替换“a”并返回“ashish jcin”。

于 2016-09-28T11:24:36.077 回答