>

where 로 행을 선택하려고합니다.  상태 및 페이지 매김이 필요합니다. 그래서 Fetch 를 추가했습니다   offset 와 함께 [동적으로 만들려면] 절이지만 다음과 같은 오류가 발생합니다.

ORA-00933: SQL command not properly ended Position: 414

내 검색어 :

SELECT
    up.NAME upozilaName_bn,
       up.id upozila,
    dis.NAME districtName_bn,
       dis.id district,
    dv.NAME divisionName_bn,
       dv.id division,
    w.COUNTER_TYPE, w.COUNTER_ID,
    w.STATUS
FROM X w
left join  Y up
    ON w.UPOZILA = up.ID
left JOIN Z dis
    ON w.DISTRICT = dis.id
left join  P dv
    ON w.DIVISION = dv.ID
where 1=1  order by upozilaName_bn asc OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY;

FFSET 1 ROWS FETCH NEXT 10 ROWS ONLY 없이  이건 괜찮아! 그 오류를 검색했습니다 : 933 하지만 도움이 없습니다. 오라클 버전 : 11.2g


  • 답변 # 1

    OFFSET 1 ROWS FETCH NEXT 10 ROWS ONLY  Oracle 12c에서 구할 수 있습니다.

    대신 쿼리를 수행하고 데이터를 주문해야합니다. 그런 다음 정렬 된 행에 대한 행 번호를 생성하십시오. 마지막으로 해당 행 번호를 필터링하십시오. 이 단계는 중첩 된 하위 쿼리에서 올바른 순서로 수행해야합니다.

    SELECT *
    FROM   (
      SELECT t.*,
             ROWNUM AS rn
      FROM   (
        SELECT up.NAME AS upozilaName_bn,
               up.id AS upozila,
               dis.NAME AS districtName_bn,
               dis.id AS district,
               dv.NAME AS divisionName_bn,
               dv.id AS division,
               w.COUNTER_TYPE,
               w.COUNTER_ID,
               w.STATUS
        FROM X w
        left join  Y up ON w.UPOZILA = up.ID
        left JOIN  Z dis ON w.DISTRICT = dis.id
        left join  P dv ON w.DIVISION = dv.ID
        order by upozilaName_bn asc
      ) T
    )
    WHERE  rn BETWEEN 2 AND 11;
    
    

관련 자료

  • 이전 purrr - R의 데이터 프레임에서 Group_by 반복
  • 다음 typescript - 이 유형 가드는 왜이 삼항식에서 작동하지 않습니까?