웹개발 관련

[ORACLE] to_number . 문자를 숫자로 변경

반응형

닉네임 끝에 숫자가 순차적으로 올라가는 프로그램을 만들고있었음

 

닉네임 끝의 숫자를 잘라서 가장 높은 숫자를 뽑아내는건데

 

닉네임이 문자열이라 아래와 같이 닉네임 앞에 고정 글자를 자르고 숫자를 정렬하면 제대로 정렬되지않음.

 

 

SELECT NVL(MAX(num),'0') AS num 

FROM 

(SELECT SUBSTR(num,7) AS num 

FROM 

(SELECT nickname AS num 

     FROM user

       WHERE nickname LIKE 'guest%' 

      ORDER BY nickname DESC 

  ) 

 WHERE ROWNUM = 1 

);

 

 

 

 

그래서 숫자로 바꾸고 최대 값을 찾음

 

 

 

 

SELECT NVL(MAX(TO_number(num)),'0') AS num 

 FROM 

(SELECT SUBSTR(nickname,7) AS num 

FROM 

   (SELECT nickname

    FROM user

      WHERE nickname LIKE 'guest%' 

  ) 

);

 

 

 

 

 

 

 

반응형