我想创建一个存储过程,通过比较C1和C2的值将Current Flag的值更新为Y或N,并将最新的值设置为Y和较旧的N.在下面的结果集中,第1行和2具有相同的C2和C2值,所以我想将最新的当前标志设置为Y和较旧的N.以下结果集中的第3行没有重复,所以我希望它说Y.
10 12 9 1985-06-10 NULL
10 12 60 2015-09-10 NULL
3 5 23 2001-09-10 NULL
1 1 96 2010-09-10 NULL
1 1 71 2016-09-10 NULL
答案 0 :(得分:0)
您可以使用相关子查询在标准SQL中执行此操作:
update t
set flag = (case when date = (select max(date) from t t2 where t2.c1 = t.c1 and t2.c2 = t.c1)
then 'Y' else 'N'
end);
特定数据库可能有其他方法,但这应该适用于任何数据库。