gpt4 book ai didi

sql - 如何在SQL中找到上下第一个最近的值?

转载 作者:行者123 更新时间:2023-12-04 11:49:07 24 4
gpt4 key购买 nike

我有这样的表:

enter image description here

当我设置 id =4 时,我需要的结果是:

enter image description here

请注意,我选择了 ID=4 和两边最接近的两个值。

怎样才能写出sql代码呢?

最佳答案

您可以使用 LEAD()函数,按特定顺序选择下一个值,如下所示:

请注意 LEAD 仅在 SQL-Server 2012+ 中引入。

SELECT s.id,s.name,s.number
FROM (
SELECT t.*
LEAD(t.id,1) OVER(ORDER BY t.Number DESC) as Next_val,
LEAD(t.id,1) OVER(ORDER BY t.Number) as Last_val
FROM YourTable t) s
WHERE 4 IN(s.id,next_Val,s.last_val)

您可以将 4 替换为您想要的 ID 或参数。

编辑: 一点解释 - LEAD 函数提供了一种访问下一行的方法,无需使用 SELF JOINsub query ,它按照您在 OVER() 子句中提供的顺序对结果进行排序,并选择括号内的值 - LEAD(value) 属于正在处理的当前记录之上的记录。因此,此查询选择每个 ID ,以及属于最接近值 up 和 down 的 ID ,然后检查其中一个是否是您想要的 ID .

关于sql - 如何在SQL中找到上下第一个最近的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38865947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com