sql-server - SQL Server 修剪和计数
问题描述
我在下面有一个简单的选择:
Select * from transaction
where customer = 'AA'
我得到的结果是几列,其中包含公司名称、电子邮件地址、交易价值、日期以及交易 ID。现在这是重要的一点,我想编写一个查询,我可以在其中获取事务 ID 列表作为计数。但是,id 的最后几个数字彼此不同:
IE
我有以下 id:
LV_AAAA_205_123456
或
LV_AAAA_205_123456_E_
(如您所见,这是相同的,但有E)
这是主标识。但是,如果此事务已更改,则它会更改为下面的 id
LV_AAAA_205_123456_E_(2)
如果它再次改变,那么它看起来像这样
LV_AAAA_205_123456_E_(3)
这取决于它改变了多少次。
我想要的是一个查询,它允许我通过查看由于它们的 id 而最后具有 (2)、(3) 的实例来查找这些原始 id 被更改了多少次。
我想要一个结束查询,它只给我一个已更改的 id 的输出以及已更改次数的列计数,因此 idLV_AAAA_205_123456_E_(4)
旁边的计数为 4。
对不起,如果我不清楚,请询问我的清楚。我希望有人能帮帮忙。
解决方案
试试这个脚本
select
case
when transactionId like '%_E_%'
then isnull(TRY_PARSE(REPLACE(substring(transactionId, CHARINDEX('_E_(', transactionId, 0) + 4, LEN(transactionId)) , ')', '') as int), 1)
else 0
end as ChangedTimes
from transaction
where customer = 'AA'
推荐阅读
- kotlin - Beam JdbcIO.readAll 似乎没有返回结果
- java - 在 Android 中结合 OpenGL ES 渲染和 UI 元素
- python - 替换 torch.cdist() 函数以消除 GPU 内存不足运行时错误
- html - 一个应用程序的两种不同样式 angular 6
- angular - 使用 Mat-Paginator 时无法读取未定义的属性“管道”
- reactjs - 使用 React Hook 将更新程序传递给将 `(state, props)` 作为更新状态的参数的`setState` 等效于什么?
- swift - 是否可以在 Delegating 类中的 didApplyConstraints 之后处理计算?
- flutter - Flutter 出现在 null 上调用了方法 'findRenderObject'
- python - 如何从对象列表中返回属性值列表
- selenium - Xpath 从表中获取值