반응형
조건이 충족될 때까지 행 선택
특정 정보를 반환하는 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
반응형
'programing' 카테고리의 다른 글
파일을 재귀적으로 .gitignore하는 방법 (0) | 2023.10.08 |
---|---|
우커머스:주문 시 텍스트 변경 버튼 (0) | 2023.10.08 |
jQuery Vertical 메가 메뉴 하위 메뉴가 로드 시 깜박입니다.워드프레스에서 깜박임을 방지하는 방법 (0) | 2023.10.08 |
자식 값을 기준으로 요소를 선택하는 XPath (0) | 2023.10.08 |
jQuery를 사용하는 a의 내용을 얻으려면 어떻게 해야 합니까? (0) | 2023.10.08 |