SELECT BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT ROWNUM AS RNUM,
BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT A.BBS_SEQ,
A.USER_ID,
NVL(B.USER_NAME,'') USER_NAME,
NVL(B.USER_EMAIL,'') USER_EMAIL,
NVL(A.BBS_PWD,'') BBS_PWD,
NVL(A.BBS_TITLE,'') BBS_TITLE,
NVL(A.BBS_CONTENT,'') BBS_CONTENT,
NVL(A.BBS_READ_CNT, 0) BBS_READ_CNT,
NVL(TO_CHAR(A.REG_DATE, 'YYYY.MM.DD HH24:MI:SS'), '') REG_DATE
FROM TBL_BOARD A, TBL_USER B
WHERE A.USER_ID = B.USER_ID
ORDER BY A.BBS_SEQ DESC) ))
WHERE RNUM >=1
AND RNUM <=5;
여기서 검색 조건을 추가하면 다음과 같다.
(CLOB 타입의 문자열을 검색할 때 사용하는 함수)
: DBMS_LOB.INSTR(A.BBS_CONTENT, '게시') > 0
위치를 반환하기 때문에 0보다 크면 검색 조건에 맞는 게시글이 있는 것으로 간주할 수 있다.
SELECT BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT ROWNUM AS RNUM,
BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT BBS_SEQ,
USER_ID,
USER_NAME,
USER_EMAIL,
BBS_PWD,
BBS_TITLE,
BBS_CONTENT,
BBS_READ_CNT,
REG_DATE
FROM (SELECT A.BBS_SEQ,
A.USER_ID,
NVL(B.USER_NAME,'') USER_NAME,
NVL(B.USER_EMAIL,'') USER_EMAIL,
NVL(A.BBS_PWD,'') BBS_PWD,
NVL(A.BBS_TITLE,'') BBS_TITLE,
NVL(A.BBS_CONTENT,'') BBS_CONTENT,
NVL(A.BBS_READ_CNT, 0) BBS_READ_CNT,
NVL(TO_CHAR(A.REG_DATE, 'YYYY.MM.DD HH24:MI:SS'), '') REG_DATE
FROM TBL_BOARD A, TBL_USER B
WHERE A.USER_ID = B.USER_ID
AND B.USER_NAME LIKE '%김%'
AND A.BBS_TITLE LIKE '%게시%'
AND DBMS_LOB.INSTR(A.BBS_CONTENT, '게시') > 0
ORDER BY A.BBS_SEQ DESC) ))
WHERE RNUM >=1
AND RNUM <=5;
연습문제 : 화면과 같이 결과를 출력하며, 작성자 이름에 '..'을 포함하는 조건으로 데이터 조회. 페이징 처리를 하며, 1부터 5페이지만 조회. (최신순 조회)
단, 리스트 페이지는 내용이 필요없으므로 조회 항목에서 제하며
B.BBS_SEQ, U.USER_ID, U.USER_NAME, U.USER_EMAIL, B.BBS_PWD,
B.BBS_TITLE, B.BBS_CONTENT, B.BBS_READ_CNT, B.REG_DATE
'Study > DataBase' 카테고리의 다른 글
[오라클] SQL DEVELOPER 경고 - 일부 모듈을 설치하지 못했습니다. (1) | 2024.01.11 |
---|---|
[데이터베이스] 오라클 JOB/ 페이징(ROWNUM) 연습문제 / SQL 튜닝(힌트) (1) | 2024.01.04 |
[데이터베이스] 커서를 이용한 연습문제 (0) | 2024.01.04 |
[데이터베이스] PL/SQL을 활용한 프로시저 (2) | 2024.01.03 |
[데이터베이스] 오라클 서브쿼리를 활용한 DDL / VIEW(뷰) 사용 예제/ INDEX(인덱스) 개념 (0) | 2024.01.02 |
댓글