설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


총 게시물 94건, 최근 0 건
   

TRANSLATE 함수를 이용하여 모음삭제하기

글쓴이 : PostgresDBA 날짜 : 2012-12-09 (일) 19:34 조회 : 6146
PostgreSQL 에서는 아래와 같이 구현할수 있습니다.

scott@[local]:5432 scottdb#SQL> SELECT ENAME, TRANSLATE(ENAME,'AEIOU','') X FROM EMP;
 ename  |  x   
--------+------
 SMITH  | SMTH
 ALLEN  | LLN
 WARD   | WRD
 JONES  | JNS
 MARTIN | MRTN
 BLAKE  | BLK
 CLARK  | CLRK
 SCOTT  | SCTT
 KING   | KNG
 TURNER | TRNR
 ADAMS  | DMS
 JAMES  | JMS
 FORD   | FRD
 MILLER | MLLR
(14 rows)
Time: 2.166 ms
scott@[local]:5432 scottdb#SQL> 

참고로 오라클에서는 어떻게 해야 할까요?
PostgreSQL 구문을 그대로 사용하면 결과가 달라집니다

SCOTT@ORA11GR2>SELECT ENAME, TRANSLATE(ENAME,'AEIOU','') X FROM EMP;

ENAME      X
---------- --------------------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER

14 rows selected.

오라클에서는 아래와 같이 REPLACE 함수를 한번 더 사용해주어야 하네요.
즉,  TRANSLATE 함수 세번째 인수로 널이 아닌 일반문자로 대체후 REPLACE 로 삭제해주어야 합니다.

SCOTT@ORA11GR2>SELECT ENAME, REPLACE(TRANSLATE(ENAME,'AEIOU','-'),'-','') X FROM EMP;

ENAME      X
---------- --------------------
SMITH      SMTH
ALLEN      LLN
WARD       WRD
JONES      JNS
MARTIN     MRTN
BLAKE      BLK
CLARK      CLRK
SCOTT      SCTT
KING       KNG
TURNER     TRNR
ADAMS      DMS
JAMES      JMS
FORD       FRD
MILLER     MLLR

14 rows selected.

SCOTT@ORA11GR2>

DB를 공부할때 다른 DB들과 비교해가면서 공부하는 것도 큰 도움이 된답니다.


   

postgresdba.com