如何在t-sql中使用patIndex删除右括号

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

以下是我用来测试我的patindex的选择。我正在尝试删除所有特殊字符,但返回的结果集如下所示。基本上,会计格式存在一些负数。我需要删除此格式并将其设置为数字($ 102.00)。

Sql:[0.00,$ 102.00)]

select  cast(rtrim(ltrim(Replace([Amount],SUBSTRING([Amount],patindex('%[^0-9]%',[Amount]),1),'') ) )as varchar) from Temp2

有人知道如何删除该结束符吗?我已经尝试了一堆正则表达式,但是我无法解决它。

任何帮助将不胜感激。

编辑:我很抱歉。我正在使用以[$ 0.00,($ 25.00)]开头的Sql Server我得到以上。我需要它看起来像[0.00,25.00]

我已经尝试了'%[()]%'或这个'%[()%]'的patindex,它只会删除第一个。如果我将其翻转,它只会删除右括号,而不会删除左括号。和一堆其他组合。

sql sql-server regex tsql
1个回答
0
投票

您可以使用“替换3次”来删除不需要的字符

Declare @s varchar(100)
Select @s = '[$0.00,($25.00)]'
Select @s as original,  Replace(Replace(Replace(@s,'$',''),'(',''),')','') as cleaned
© www.soinside.com 2019 - 2024. All rights reserved.