我在SQL中有一个变量,如下所示
DECLARE @MyVariable AS VARCHAR(50) = 'My Name. Is Ibrahim. AND. I am. Searching For. A. Solution. aa'
当我打印@MyVariable
时
print(@MyVariable)
输出如下所示
我的名字。是易卜拉欣。和。我是。正在搜寻。一个办法。 aa
这很好,但是现在我想删除除最后一个点之外的所有点
我的预期输出如下所示
输出如下所示
我的名字叫易卜拉欣,我正在寻找解决方案。 aa
我该如何做到这一点,我在Google上搜索但找不到任何东西
如果.
字符始终位于结尾,则非常简单:
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个字符,因此被截断了。