You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写SQL语句实现基于Snap_Id的Result字段计算需求

需求:编写SQL实现指定业务逻辑

业务逻辑规则:

  • 若某行的Snap_Id不为null,则其前一行的Result字段值为Yes
  • 其余行的Result字段值为No

原始数据表格

IdCaseIdUserCaseStatusDateCreatedSnap_Idrow_num
11100Raj32023-04-27null1
22100Mike32023-06-22null2
33100RJ52023-06-30333
44100Mike32023-07-04null4
55100RJ52023-07-04555

期望输出表格

IdCaseIdUserCaseStatusDateCreatedSnap_Idrow_numResult
11100Raj32023-04-27null1No
22100Mike32023-06-22null2Yes
33100RJ52023-06-30333No
44100Mike32023-07-04null4Yes
55100RJ52023-07-04555No

SQL解决方案

利用LEAD()窗口函数获取下一行的Snap_Id值,通过判断该值是否非空来确定当前行的Result:

SELECT 
    Id,
    CaseId,
    User,
    CaseStatus,
    DateCreated,
    Snap_Id,
    row_num,
    CASE 
        WHEN LEAD(Snap_Id) OVER (PARTITION BY CaseId ORDER BY row_num) IS NOT NULL 
        THEN 'Yes' 
        ELSE 'No' 
    END AS Result
FROM 
    your_table_name;

逻辑说明

  1. PARTITION BY CaseId:确保仅在同一个CaseId的范围内进行行的比较(适配多CaseId场景)
  2. ORDER BY row_num:按照row_num的顺序确定行的前后关系
  3. LEAD(Snap_Id):获取当前行的下一行的Snap_Id值
  4. 当获取到的下一行Snap_Id不为null时,当前行的Result设为Yes,否则设为No

内容的提问来源于stack exchange,提问作者Abhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 20:55:22