SeaForest

[SQL] Oracle 고유값 count, 행 개수 제한 본문

SQL

[SQL] Oracle 고유값 count, 행 개수 제한

seaforest 2022. 8. 3. 00:23

※ Oracle

 

1. 고유 개수 

<ex> name의 고유값을 count 하는 경우

- count(distinct name)

 

2. 행 개수 제한

<ex> Datetime 기준으로 오름차순 정렬 후, 가장 먼저 들어온 Name을 확인하는 경우

- select 절로 한번 더 감싸준 다음에 rownum 조건을 사용해야함

(참고, mysql에서는 select 절로 한번 더 감싸줄 필요 없이 limit으로 가능)

 

※ORACLE에서 ROWNUM을 사용해야 하는 이유 : 

- 오라클에서는 테이블을 생성하면 ROWNUM이라는 임시 칼럼이 제공됨
- ROWNUM은 각 행에 대한 일련 번호를 의미하고, 레코드에 1부터 순차적으로 번호가 부여됨
- ROWNUM의 한계는 ORDER BY 절을 이용하여 레코드를 정렬하고자 할 때 원하는 순서애로 번호가 부여되지 않음
참고 : https://m.blog.naver.com/PostView.nhn?blogId=heartflow89&logNo=221005192056&proxyReferer=https:%2F%2Fwww.google.com%2F 

 

[오라클/Oracle] 인라인뷰(inline view) / ROWNUM

오라클을 JSP 등과 연동하여 게시판과 같은 것을 구현할 때 페이징 처리가 필요하다. 페이징 처리는 최...

blog.naver.com

 

3. 대소문자 구분

- Oracle은 대소문자를 구분하기 때문에 like 연산자 등을 사용하는 경우, 대소문자 구분을 생각해야함

- 예를 들어 WHERE 절에서 LOWER를 빼고 like '%el%' 로 하면 대문자 EL 이 들어가 있는 경우는 포함을 못함

- 대문자로 바꾸는 함수 : UPPER() , 소문자로 바꾸는 함수 : LOWER()

- sql statements는 대소문자를 구분하지 않지만, 문자데이터는 대소문자를 구분함.