replace(replace(필드명, chr(13), ''), char(10), '')

- char(13)이나 char(10), 둘중 하나만 했을경우 계속 new line이 포함되어 엑셀 변환시 양식이 엉망이 되는 경우가 생김. 필히 둘다 적용해야 함.

- 혹 다른방법이 있으면 말씀해주세요.
블로그 이미지

2010년1월어느날..

,
명단에서 총 순위의 80%에 해당하는 사람의 정보가 나와야 하는 경우가 생겼다.
rownum 같은경우는 order by 하기 전에 미리 번호가 부여되어있기때문에 order by해 버리면 번호가 뒤죽박죽된다.

이럴 경우 rank(), dense_rank(), row_number() 함수를 사용하면 된다.
하지만 문제는 내가 사용하는 오라클 시스템 버전이 너무 하위버전이라 이 함수들이 적용될지가 문제..

다행히도 지원해준다.

rank(), dense_rank()와 row_number()의 차이점은 1등이 2명있을경우 row_number()는 두번째 sorting되는 값이 1이 아닌 2를 가지게 된다. 즉 첫번째, 두번째가 동점일지라도 순위는 1, 2로 값을 다르게 부여한다.
dense_rank()는 위의 경우에 1, 1로 값이 들어가고 세번째에는 2가들어간다. 마지막으로 rank()는 1, 1 그리고 3이 들어간다.

*예
성명
점수
rank() dense_rank()
row_number()
A 100 1 1
1
B 100 1 1 2
C 90 3 2 3
D 80 4 3 4


*사용법
[rank()||dense_rank()||row_number()] over (partition by '그룹화 할 필드' order by '정렬 필드' [desc||asc])

블로그 이미지

2010년1월어느날..

,
* 필드에 숫자만 있는 row만 나오게 한다던지 해당 필드가 숫자인지 문자인지 나오게 하는 방법

translate(필드명, '0123456789'||필드명, '0123456789')

이게 null이면 문자, 아니면 숫자임.

아직 어떻게해서 그런지는 파악이 안됐지만 천천히 알아볼예정임...


블로그 이미지

2010년1월어느날..

,

DSC00173
딸기 + 귤 + 우유

이 세가지를 입안에서 동시에 먹어본적이 있는가??
동시에 씹어야된다.
.
.
.
강추~~!!


블로그 이미지

2010년1월어느날..

,
select user_id, user_name
from   member 
where user_id in (5, 7, 1, 2, 9); 

인 경우, 결과는

9 김
2 이
1 박
7 유
5 최

이런식으로 입력순서의 반대로 출력이 된다.
입력순서대로 출력하는 방법은 의외로 간단하다.
rownum을 이용하는 것이다.  

select user_id, user_name
from   member
where user_id in (5, 7, 1, 2, 9)
order by rownum desc;

결과값

5 최

7 유

1 박

2 이

9 김

블로그 이미지

2010년1월어느날..

,