쿼리 쿼리를 사용하여 특정 행 범위를 선택하는 방법은 무엇입니까? 당신이 할 설정 원본 레코드에 열을 추가해야합니다 있도록쿼리 쿼리에서 행 범위 선택
는 CF에서 기본적으로 이렇게
<cfquery name="myQuery" maxrows ="20" startrow="12">
SELECT *
FROM previous_query
WHERE row_numer >= 12
</cfquery>
그런 종류의 ...
쿼리 쿼리를 사용하여 특정 행 범위를 선택하는 방법은 무엇입니까? 당신이 할 설정 원본 레코드에 열을 추가해야합니다 있도록쿼리 쿼리에서 행 범위 선택
는 CF에서 기본적으로 이렇게
<cfquery name="myQuery" maxrows ="20" startrow="12">
SELECT *
FROM previous_query
WHERE row_numer >= 12
</cfquery>
그런 종류의 ...
이것은 까다로운 문제 였지만 문제는 나를 흥미롭게 만들었습니다. I 생각해보십시오. 해결책이있을 수도 있습니다.
원하는 행보다 먼저 모든 것을 삭제 한 다음 원하는 행 다음을 모두 삭제하는 기능을 작성했습니다.
rowrange() 함수는 3 개의 매개 변수를 사용합니다. 1. 작업중인 queryname. 2. 원하는 시작 행 3. 원하는 행 수.
업데이트 : 내 친구 John Whish는 실제로이 작업을 수행하기 위해 반복 작업을 수행 할 필요가 없다고 지적했습니다. 루프를 제거하면 확장 성이 훨씬 향상됩니다.
<cfquery name="myQuery">
SELECT *
FROM previous_query
WHERE row_numer >= 12
</cfquery>
<cfset rowRange(myQuery,7,4)>
<cfdump var="#myQuery#">
<cffunction name="rowRange" hint="return a range of rows from a given query">
<cfargument name="qObj" type="query" required="true">
<cfargument name="start" type="numeric" required="true" default="1" hint="The number of the first row to include">
<cfargument name="range" type="numeric" required="true" default="1" hint="The number of rows">
<cfset var i = arguments.start+arguments.range-1>
<cfset arguments.qObj.removeRows(i,arguments.qObj.recordcount-i)>
<cfset arguments.qObj.removeRows(0,arguments.start-1)>
<cfreturn arguments.qObj>
</cffunction>
아주 좋은 솔루션이며 구현할 수 있습니다. 여러 위치에. 고마워요 – Dpolehonski
코드 업데이트 : 내 친구 인 John Whish는 실제로이 작업을 수행하기 위해 반복 작업을 수행 할 필요가 없다고 지적했습니다. 루프를 제거하면 확장 성이 훨씬 향상됩니다. –
올해 존 쉐이크를 CF.objective()로 만났습니다. 그는 클라이언트를 SQL 서버로 마이그레이션해야한다고 말했습니다. 내가 할 수 있으면 좋겠어, 나는이 기능을 내 Access Access 해킹 라이브러리에 추가 할 것이다. 감사. – Dpolehonski
는 지원되지 않습니다 예를 들어, 너를 믿어.
SELECT ..., row_num AS Counter
Row_Num은 DBMS에 따라 다를 수 있습니다.
그랬 겠지만 MS Access는 row_num 유형의 기능을 지원하지 않습니다. 필자는 queryAddColumn을 사용하고 QoQ를 수행하기 전에 rownumber 열을 수동으로 추가하여 시뮬레이션했습니다. – Dpolehonski
글쎄, 그건 사실이 아니야, 당신은 쉽게 쿼리를 조작 할 수있다. http://www.cwithb.com/2010/09/simplified-take-on-an-access-database-query-sql-row_numberranking-equivalent/ – Busches
사실이지만, 큰 데이터 세트를 가진 액세스 데이터베이스에서 서브 쿼리를 실행하는 것이 지수 적으로 비효율적이되는 테스트를 통해 발견되었습니다. CF로 수동으로 수행하는 것이 더 빠릅니다. – Dpolehonski
'선택 TOP 20'을 할 수 없습니까? –
coldfusions 쿼리 쿼리는 TOP를 지원하지 않으며, 레코드 집합의 모든 부분에서 20 개의 행을 검색 할 수 있기를 원합니다. – Dpolehonski