我无法确定某些业务流程,并且能够跟踪数据库中的流程。我已经找到了我想研究的错误消息,但仅在一定流量的情况下。
我的问题是如何在SQL中实现这一目标。
例如
Source Statement -------- ------------ PORT Cannot create APP No active visit GIK OIK APP No active visit
现在,如果以前的记录的源值为“ GIK”,那么我只希望记录语句为“无活动访问”。
如何在SQL中实现?我正在SSMS工作。
打招呼, 斯通尼
答案 0 :(得分:1)
您可以使用lag()
:
select t.*
from (select t.*,
lag(Source) over (order by ?) as prev_source
from table t
) t
where Statement = 'No active visit' and prev_source = 'GIK';
如果lag()
不支持,则可以使用apply
:
select t.*
from table t cross apply
(select top (1) t1.*
from table t1
where t1.<identity_col> < t.<identity_col>
order by t1.<identity_col> desc
) t1
where t.Statement = 'No active visit' and t1.source = 'GIK';
SQL
表代表无序集合。如果要在结果集中进行特定的排序,则需要一个排序列。因此,请使用列名而不是用于指定列顺序的?
。