sql - 上一个值的 SQL 帮助
问题描述
嗨,我有这样的桌子
我需要最后一列父项的结果
如果 Lvl = 1,父项列应获取产品编号的值,然后在 Lvl=0 的情况下填充产品无值,如果 Lvl=2,则在 lvl=1 的情况下填充产品无值。我尝试使用以下查询但没有得到正确的输出
select ABC, lvl as Lvl,Product_no,
case
when lvl = 1 then lag(ref) over(order by ABC)
when lvl = 2 then lag(ref) over(order by ABC ) end as
[父项]
另一个示例 在此处输入图像描述
解决方案
我可以帮你查询:
Select
T1.ABC,
T1.Lvl,
T1.ProductNo,
(Select ProductNo From TableName where Lvl = T1.Lvl - 1) as parantProduct
From TableName T1
这确实考虑到是否可以有多个父项。
如果您应该能够正确获取最后一行,则需要更多信息(ProductNo L97****)
推荐阅读
- ios - 多方法混用时如何找到方法的原始实现
- python - RegEx :匹配除特定子字符串之外的所有行
- unity3d - 如何使用 Unity 获得纬度和经度值的准确性?
- firebase - 通过 Google Cloud API 区分云函数的 HTTP 和 onCall 触发器
- java - Spring Boot 关系返回 null
- c# - Visual Studio 2012 和 2015,添加 > 新项目 > 报告 > 水晶文件报告未找到
- postgresql - 根据postgresql中存储过程的动态用户输入检查多个和条件
- linux - 过滤器快照版本
- amazon-web-services - 如何使用 API Gateway 中的请求验证器验证请求正文中的所需参数?
- java - 为什么默认方法不被识别为属性(getter/setter)?