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

mrfwxfqh  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(300)

下面是我用来测试patindex的select。我试图删除所有特殊字符,但返回的结果集如下所示。基本上有一些负数与会计格式。我需要删除这个格式,它只是数字($102.00)。

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

有人知道怎么去掉那个封口吗 ) ? 我试过一堆正则表达式,但我就是不能让它消失。
任何帮助都将不胜感激。
编辑:我的道歉。我使用的是sql server [$0.00,($25.00)] 我明白了。我需要它看起来像 [0.00,25.00] 我已经试过了 '%[()]%' 还是这个 '%[\(\)%]' 只会移除第一个。如果我翻转它,它只会删除右括号,而不会删除左括号。还有其他一些组合。

kq4fsx7k

kq4fsx7k1#

您只需使用replace 3次就可以删除不需要的字符。

Declare @s varchar(100)
Select @s = '[$0.00,($25.00)]'
Select @s as original,  Replace(Replace(Replace(@s,'$',''),'(',''),')','') as cleaned

如果需要将其应用于表中的列(例如amount),而不是@s,请在sql查询中使用该列名

Select ...., Replace (.... <<Amount>> ) from yourTable

这是小提琴

相关问题