gpt4 book ai didi

sql - 选择行直到满足条件

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

我想编写一个Oracle查询,该查询返回一组特定的信息。使用下表,如果给定一个id,它将返回ID和B的值。此外,如果B = T,它还将返回下一行。如果下一行具有B = T,它将返回该值,依此类推,直到遇到F。

因此,给定3,它将仅返回一行:(3,F)。给定4它将返回3行:((4,T),(5,T),(6,F))

ID B
1楼
2楼
3楼
4吨
5吨
6楼
7吨
8楼

先感谢您!

最佳答案

使用子查询找出应该在什么位置停止,然后将所有行从起点返回到计算出的终点。

SELECT
*
FROM
yourTable
WHERE
id >= 4
AND id <= (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4)

注意,这假设最后一条记录始终为“F”。您可以使用 COALESCE处理最后一个记录,即为“T”。
SELECT
*
FROM
yourTable
WHERE
id >= 4
AND id <= COALESCE(
(SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4),
(SELECT MAX(id) FROM yourTable )
)

关于sql - 选择行直到满足条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22232282/

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