select ROWNUM id, name, salary
from emp_test;
select ROWNUM R, id, name, salary
from emp_test
where salary between 1111 and 7777;
where 키워드 실행 결과에 ROWNUM을 매겨준다
select ROWNUM R, id, name, salary
from emp_test
where salary between 1111 and 7777
order by salary desc nulls last;
where => ROWNUM 번호 매긴 후 order by 실행
따라서 월급이 1111이고 7777인 사람을 월급순으로 내림차순 정렬 한 후 번호를 매기고 싶다면 아래와 같이 쿼리를 작성하면된다.
select ROWNUM R, vt.*
from
(
select id, name, salary
from emp_test
where salary between 1111 and 7777
order by salary desc nulls last
)vt
select ROWNUM , vt.*
from
(
select id, name, salary
from emp_test
where salary between 1111 and 7777
order by salary desc nulls last
)vt where ROWNUM >= 3;
select vt2.r, vt2.*
from
(
select ROWNUM r, vt.*
from
(
select id, name, salary
from emp_test
where salary between 1111 and 7777
order by salary desc nulls last
)vt
)vt2 WHERE r >= 3;
jsp안에 java 코드를 최소화 하기 위해 아래와 같은 기능들을 제공한다
1. objcet scope 접근용이
2. bean field 접근용이
3. colletcion 접근용이
4. 자체 연산자 제공
5. 내장 객체 제공(${"1" + 2} 실행시 자체적으로 문자에 Integer.parseInt("1") 실행)
-> java code를 캡슐화 하였다.
${sessionScope.value}
처럼 object scope를 명시해주면 해당 object scope의 value를 찾지만 objcet scope을 명시 안해주면
pageScope => requestScope => sessionScope => applicationScope 순으로 value를 찾는다.
<%= pageContext.getSession.getId()%> --> ${pageContext.session.id}
${sessionScope.client.name}
${client.addr}
<c.out value=> 추가
<%= %>
<% out.print %>
${}