我有以下示例数据,想要将列 Snap_Id 与前一行值进行比较。 如果 Snap_Id 行不为空,则前一行应为“是”,否则为“否”
身份证 | 案例编号 | 用户 | 案例状态 | 创建日期 | Snap_Id | 行数 |
---|---|---|---|---|---|---|
11 | 100 | 拉杰 | 3 | 2023-04-27 | 空 | 1 |
22 | 100 | 迈克 | 3 | 2023-06-22 | 空 | 2 |
33 | 100 | RJ | 5 | 2023-06-30 | 33 | 3 |
44 | 100 | 迈克 | 3 | 2023-07-04 | 空 | 4 |
55 | 100 | RJ | 5 | 2023-07-04 | 55 | 5 |
你能帮我写SQL语句来实现它吗?我尝试了自加入,但它返回了 12 条数据不正确的记录。
我期望的最终输出如下,
身份证 | 案例编号 | 用户 | 案例状态 | 创建日期 | Snap_Id | 行数 | 结果 |
---|---|---|---|---|---|---|---|
11 | 100 | 拉杰 | 3 | 2023-04-27 | 空 | 1 | 没有 |
22 | 100 | 迈克 | 3 | 2023-06-22 | 空 | 2 | 是的 |
33 | 100 | RJ | 5 | 2023-06-30 | 33 | 3 | 没有 |
44 | 100 | 迈克 | 3 | 2023-07-04 | 空 | 4 | 是的 |
55 | 100 | RJ | 5 | 2023-07-04 | 55 | 5 | 没有 |
希望你能帮助我。
提前致谢。
如果 Snap_Id 行不为空,则前一行应为 Yes else No
如果你改写为
if Snap_Id of next row is not null then the result should be Yes else No
就更清楚了
Result = case when lead(Snap_Id) over (order by row_num) is not null
then 'Yes'
else 'No'
end