我有一个像这样的简单表
Person
id,order
1;5
2;3
3;1
4;2
5;4
我需要使用订单栏获取以前的行 例如,如果id参数是5(order = 4),我需要返回行id:2,4,3。 如果id为2(order = 3),我需要返回行id 4,3
很抱歉,如果我努力让我理解
我创建了这个请求,但是我很难让它工作
select *
from Person p
where p.id= (
Select p2.id
from Person p2
where p2.id=1 /*so should return rows [ 5,2,4,3]*/
and p2.order< p2.order
)
期望的输出
id,order
5;4
2;3
4;2
3;1
非常感谢
答案 0 :(得分:3)
答案 1 :(得分:1)
这符合您的描述:
SELECT * FROM Person
WHERE "order" <
(SELECT "order" order FROM Person WHERE id = 5)
子选择用于检索&#34;命令&#34;指定行的。在子选择中,我执行减法以找到先前的值。这在select的where子句中用于获取所需的行。