我有一个表,该表包含emp编号,工作名称,jobid和JobSubid。我希望能够确定Jobubid和Job名称更改但Jobid保持不变且Job名称更改为与先前Jobid和JobSubid相同的情况不同的名称的情况。
答案 0 :(得分:1)
您可以使用分析功能。但是必须有一些列来标识记录的顺序,因此我假设必须有一些jobstartdate
列
Select t.*,
Case when prev_jobname <> jobname and prev_jobsubid <> jobsubid
Then 'Changed'
Else 'Not changed'
end as result
(Select t.*
Lag(t.jobname)
over (partition by t.empno, t.jobid
Order by t.jobstartdate) as prev_jobname
Lag(t.jobsubid)
over (partition by t.empno, t.jobid
Order by t.jobstartdate) as prev_jobsubid
From your_table t) t
干杯!