sql - 如何在 t-sql 中使用 patIndex 删除右括号
问题描述
下面是我用来测试我的 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
有谁知道如何删除该关闭)
?我尝试了一堆正则表达式,但我无法让它消失。
任何帮助将不胜感激。
编辑:我的道歉。我正在使用 Sql Server 我从[$0.00,($25.00)]
上面得到。我需要它看起来像[0.00,25.00]
我尝试了一个 patindex of '%[()]%'
or this '%[\(\)%]'
,它只删除了第一个。如果我翻转它,它只会删除右括号,但不会删除左括号。还有一堆其他的组合。
解决方案
您可以使用 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
这是小提琴
推荐阅读
- python - 幕后的 Numpy 固定大小数据类型
- python - Slack chat_postMessage, files_upload 在同一条消息中
- android - BottomNavigationView 导航组件嵌套图形问题
- android - 我们如何在本地 android 应用程序中使用动态 android 模块?
- python - 通过 SQLAlchemy 的 `create_engine()` 访问 Oracle 需要更多设置,不是吗?
- blazor - Blazor Web Assembly 应用程序部署和更新
- python - 为隐式命名空间包自动导入子包
- node.js - 使用 Fixie(对于静态 IP 地址)将 Heroku 应用程序连接到 MongoDB 图集会导致请求超时
- typescript - 带有 Typescript 断点的 VSCode Nuxt 未命中
- r - 使用多个数据集训练和模拟 spatstat ppm