programing

조건이 충족될 때까지 행 선택

goodsources 2023. 10. 8. 09:49
반응형

조건이 충족될 때까지 행 선택

특정 정보를 반환하는 Oracle 쿼리를 작성하고자 합니다.아래 표를 이용하면 id가 주어지면 B의 id와 값을 반환합니다.또한 B=T인 경우 다음 행도 반환됩니다.다음 행에 B=T가 있으면 F가 나올 때까지 해당 행을 반환합니다.

따라서 3이 주어지면 한 행만 반환됩니다. (3,F).4인 경우 3개의 행을 반환합니다. ((4,T), (5,T), (6,F))

이드B
1층
2층
3층
4T
5T
6층
7T
8층

미리 감사드립니다!

하위 쿼리를 사용하여 어느 지점에서 중지해야 하는지 확인한 다음 시작 지점에서 계산된 중지 지점으로 모든 행을 반환합니다.

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

참고로, 마지막 레코드는 항상 'F'인 것으로 가정합니다.마지막 레코드가 'T'인 경우는 a를 사용하여 처리할 수 있습니다.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                          )
            )

언급URL : https://stackoverflow.com/questions/22232282/select-rows-until-condition-met

반응형