如何选择符合条件的行旁边的所有行?
这是具有10行的表结构,但将来行数会增加。
表结构 纯文本:
ID Date N1
1 DateTime 9
2 DateTime 2
3 DateTime 5
4 DateTime 9
5 DateTime 3
6 DateTime 6
7 DateTime 7
8 DateTime 9
9 DateTime 3
10 DateTime 9
笔记: “DateTime”字符串只是符号性的,它可以是任何日期时间。
我想知道第一个N1数字后面的数字:9
我尝试了几种方法,但结果不是我想要的。
预期结果是:
ID Date N1
2 DateTime 2
5 DateTime 3
9 DateTime 3
答案1
您可以使用临时表保存等于的Id
记录。然后从表中选择所有等于的记录,即临时表中的值N1
9
Times
Id
加一这是该列中紧接着的下一个记录,即的值Id
之后的下一个记录。N1
9
SQL 查询
DROP TABLE IF EXISTS t1;
CREATE TEMPORARY TABLE t1 (SELECT id FROM numbers WHERE N1 = 9);
Select * FROM t1;
SELECT * FROM numbers
WHERE id IN (Select id+1 FROM t1);
或者
SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)
确认
从“时代”中选择 *
使用上述查询
更多资源
答案2
更好的答案Moderator Impersonator
是:
SELECT * FROM numbers WHERE id IN (SELECT ID+1 FROM numbers WHERE N1 = 9)