Użyj podzapytania, aby dowiedzieć się, w którym momencie powinieneś się zatrzymać, a następnie zwróć wszystkie wiersze od punktu początkowego do obliczonego punktu zatrzymania.
SELECT
*
FROM
yourTable
WHERE
id >= 4
AND id <= (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4)
Uwaga, zakłada się, że ostatnim rekordem jest zawsze „F”. Możesz poradzić sobie z ostatnim rekordem będącym „T” za pomocą COALESCE
.
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 )
)