database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 602 게시물 읽기
No. 602
에러 좀 바주세여 고수님덜....~~
작성자
나그네
작성일
2002-11-07 12:51
조회수
45,302

::::::::::::: 에러 메세지 :::::::::::::::::::

[Microsoft][ODBC SQL Server Driver][SQL Server]TOP을 함께 지정하지 않는 한 뷰, 인라인 함수, 파생 테이블, 하위 쿼리에서 ORDER BY 절을 사용할 수 없습니다.

 

:::::::::::::: 소스 :::::::::::::::::::::::::::::

<%

 

response.setHeader("Pragma","no-cache"); //HTTP 1.0

response.setDateHeader ("Expires", 0);

response.setHeader("cache-control","no-cache"); //HTTP 1.1

 

Connection pconn = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

 

int total=0, start=0, end=0;

int pageSize=10;

int pageTotal=0;

int cpage = 0;

 

String keyfield = Kr.nchk(request.getParameter("keyfield"));

String keyword = Kr.a2k(request.getParameter("keyword"));

String query0 = "";

String search = "";

String bbs = request.getParameter("bbs");

String pg = request.getParameter("pg");

 

bbs = (bbs==null||bbs.equals("null"))?"bbs1":bbs;

pg = (pg==null||pg.equals("null"))?"0":pg;

cpage = Integer.parseInt(pg);

 

String querytotal = "select count(*) from "+tableName+" where bbsid=?";

 

if (!keyword.equals("")) {

search = "&keyfield="+keyfield+"&keyword="+java.net.URLEncoder.encode(keyword);

query0 = " and "+keyfield+" like '%"+keyword+"%' ";

querytotal = querytotal + query0;

}

 

String query = "select seq,ref,lev,step,wdate,filename,email,maskname,download,filesize,subject,writer,readnum from "+tableName+" where bbsid=? "+query0+" order by ref desc, step";

 

if (keyfield.equals("content")) {

 

query = "select a.seq,a.ref,lev,a.step,wdate,filename,email,maskname,download,filesize,subject,writer,readnum from "+tableName+" a, (select seq from "+contentTableName+" where content like '%"+keyword+"%' group by seq) b where a.seq = b.seq and bbsid=? order by a.ref desc, a.step";

querytotal = "select count(*) from (select seq from "+contentTableName+" where bbsid = ? and content like '%"+keyword+"%')";

 

}

 

query = "select * from (select * from ("+query+") where rownum <= ? order by rownum desc ) where rownum <= ? order by ref desc, step";

 

%>

<%@ include file="db.jsp"%>

<%

 

try {

 

pstmt = pconn.prepareStatement(querytotal);

pstmt.setString(1,bbs);

rs = pstmt.executeQuery();

 

if(rs.next())

total = rs.getInt(1);

rs.close();

pstmt.close();

 

pageTotal = (total-1)/pageSize;

if (cpage<0) cpage=0;

if (cpage>pageTotal) cpage=pageTotal;

 

start = (cpage+1) * pageSize;

end = pageSize+(total-start)*((total<start)?1:0);

%>

이 글에 대한 댓글이 총 1건 있습니다.

말그대로 입니다. ORDER BY 절을 인라인뷰(서브쿼리)에서 사용할때 Top문을 꼭 써야 합니다.

박성출님이 2002-11-28 12:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
605[질문]sql서버의 db를 다른서버로 옮길려구.. [1]
이정암
2002-11-11
5071
604조인 구문좀 봐주세요 ㅜ.ㅜ
이영희
2002-11-08
4787
603My Sql 이해하기가...
김은덕
2002-11-08
4923
602에러 좀 바주세여 고수님덜....~~ [1]
나그네
2002-11-07
45302
601linux에서 ms-sql안정적으로 연결할려면 어떻게 해야 되나요? [1]
김시현
2002-11-06
5734
600문자값연결함수는 없나여? [1]
민이
2002-11-06
12281
598max와 count를 같이 쓰려면 어떻해야 하죠? [1]
김혜옥
2002-11-05
5643
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다