제 상황은 예측할 수없는 SQL 문이 프로그램에 주어지고 그 위에 페이지 매김을해야한다는 것입니다. 마지막 SQL 문은 하나 다음과 유사 할 것입니다 :SQL 서버 - 주문이없는 페이지 매김
SELECT * FROM (*Given SQL Statement*) b OFFSET 0 ROWS FETCH NEXT 50 ROWS ONLY;
여기서 문제는 * 지정된 SQL 문은 "예측할 수 있다는 것이다 그것은 나 나는를 변경할 수 없습니다입니다 절에 의해 순서를 포함하거나 포함하지 않을 수있다.. 이 SQL 문에 대한 쿼리 결과 및 페이지 매김을 수행해야합니다. 인터넷에서 솔루션을 검색했지만 모든 사용자가 order by 절에서 기본 키와 같은 임의의 열을 사용하도록 제안했습니다.
참조 http://stackoverflow.com/questions/10064532/the-order-of-a-sql-select-statement-with-order-by-clause 그래서 ORER BY를 추가해야합니다. 당신은 GIVEN SQL Statment를 점검하고 nmot가 지정된 경우 첫 번째 열에 의해 ORDER BY 1을 추가 할 수 있다고 생각합니다. – AntDC
"이 SQL 문의 쿼리 결과를 변경할 수 없습니다."라고 말하면 변경하지 못한다고 말합니다 결과가 나오기 전에 진술을 얻었습니까? 원하는 결과를 얻기 위해 시스템에서 변경 될 수있는 것과 불가능할 수있는 것을 정확히 설명해야합니다. 데이터 흐름의 어느 시점에 관여 했습니까? 데이터베이스에 액세스 할 수 있습니까? 아니면 한 곳에서 다른 곳으로 데이터가 흐르고 있습니까? 기본적으로 시스템 아키텍처는 무엇입니까? – Tony
답장을 보내 주셔서 감사합니다. 원래 결과에 영향을 미치지 않고 실행 전에 명령문을 변경할 수 있습니다. 문제는 그 진술을 알 수 없다는 것입니다. 나는 그것을 바꿀 수있다. 나는 변화의 영향을 확신하지 못한다. 이 질문에는 복잡한 시스템 아키텍처가 포함되어 있지 않습니다. 필자는 애플리케이션에서받은 모든 SQL 문에 페이지 매김을 수행하고 그 결과를 출력 할 책임이 있습니다. –