sql - 从上一行取一个值
问题描述
我有一个这样的 sql 表
这是精神病学案例的表格,它包含一个 pid,它是患者的 id 和案例的 fid,因为患者可以有多个案例。现在我有一个包含所有病例的表格,我必须生成一个病人的出口。
例如,患有 PID 123456 的患者 Max Müller 和 3 例。作为第一个案例的出口,我需要从第二个案例中获取条目是否有可能使用这样的案例语句来做到这一点
where numberOfCases > 1 then entry where numberOfCase + else 'NULL' end as exit
例如这个病人有 3 个病例(病人的名字被涂黑)我想有一个新的列出口,出口是下一个病例的入口(入口是最后一列)
解决方案
您可以使用lead
解析功能。
SELECT T.*,
LEAD(ENTRY) OVER (PARTITION BY PID ORDER BY ENTRY) AS EXIT
FROM YOUR_TABLE
干杯!!
推荐阅读
- android - 在android中接收条形码扫描仪设备结果
- python-3.x - 格式化 Python 代码时撤消较短的行长
- npm - 当您无法推送到 master 时,使用 gitlab 发布新的节点包
- dictionary - Ansible:打印字典连接列表中的元素
- mysql - 在 EF Core 5.0 中使用 FromRawSql 会引发异常
- linux-kernel - 如何确定linux内核中NMI的来源?
- javascript - 如何使用 HTML 代码更改滑块拇指的可见性?
- excel - 将复杂字典保存到 Excel 文件中
- go - 如何从 Golang SDK 撤销 okta 令牌?
- rust - 参考宏中结构的泛型