일반적으로 일부 범위의 테이블에서 데이터를 검색해야합니다. 예를 들어, 각 검색 결과에 대한 별도의 페이지. MySQL에서는 LIMIT 키워드를 사용하지만 DB2에서는 모르겠습니다. 이제 데이터 범위 검색에이 쿼리를 사용합니다.DB2에서 최상의 성능으로 데이터 범위를 쿼리하는 방법은 무엇입니까?
SELECT *
FROM(
SELECT
SMALLINT(RANK() OVER(ORDER BY NAME DESC)) AS RUNNING_NO
, DATA_KEY_VALUE
, SHOW_PRIORITY
FROM
EMPLOYEE
WHERE
NAME LIKE 'DEL%'
ORDER BY
NAME DESC
FETCH FIRST 20 ROWS ONLY
) AS TMP
ORDER BY
TMP.RUNNING_NO ASC
FETCH FIRST 10 ROWS ONLY
그러나 나는 그것이 나쁜 스타일이라는 것을 알고 있습니다. 그렇다면 최고의 성능을 위해 쿼리하는 방법은 무엇입니까?
'LIMIT'는 MySQL 호환성이 활성화 된 경우에만 작동한다고 생각하십니까? DB2 9.7.3을 실행하면 기본적으로 지원되지 않습니다 (SQL0104N ""다음에 예기치 않은 토큰 "LIMIT"가 있습니다.) – CodingWithSpike
예; DB2 9.7.4에서 작동합니다. 이 새로운 기능에 대한 기사입니다 : http://www.ibm.com/developerworks/data/library/techarticle/dm-1006db2expressc972/index.html – AngocA
DB2 Express-C에서만 작동하는 것 같습니다. 이 기사에서 설명한 것처럼 compatibility_vector를 mys로 변경해야한다. – AngocA