T-Sql删除所有点,但保留最后一个点

问题描述 投票:0回答:1

我在SQL中有一个变量,如下所示

DECLARE @MyVariable AS VARCHAR(50) = 'My Name. Is Ibrahim. AND. I am. Searching For. A. Solution. aa'

当我打印@MyVariable

print(@MyVariable)

输出如下所示

我的名字。是易卜拉欣。和。我是。正在搜寻。一个办法。 aa

这很好,但是现在我想删除除最后一个点之外的所有点

我的预期输出如下所示

输出如下所示

我的名字叫易卜拉欣,我正在寻找解决方案。 aa

我该如何做到这一点,我在Google上搜索但找不到任何东西

tsql
1个回答
0
投票

如果.字符始终位于结尾,则非常简单:

SELECT REPLACE(@MyVariable,'.','') + '.';

只需删除all.字符,然后在末尾添加一个。

编辑:使用正确的注释,您需要执行以下操作:

DECLARE @MyVariable AS VARCHAR(50) = 'My Name. Is Ibrahim. AND. I am. Searching For. A. Solution. aa';

SELECT REPLACE(LEFT(V.MyString, LEN(MyString) - (CI.I - 1)),'.','') + RIGHT(V.MyString,CI.I)
FROM (VALUES(@MyVariable),('This.is.a.string'))V(MyString)
     CROSS APPLY (VALUES(NULLIF(CHARINDEX('.',REVERSE(V.MyString)),1)))CI(I);

注意,对于您的示例字符串,返回值为'My Name Is Ibrahim AND I am Searching For A. ';因为初始字符串超过50个字符,因此被截断了。

© www.soinside.com 2019 - 2024. All rights reserved.