mySQL -> oracle 변환 질문드립니다, 0 4 1,579

by 킹오 [Oracle 기초] [2020.07.20 21:27:06]


SELECT 
               IFNULL(LPAD(MAX(CAST(APPLE AS UNSIGNED)) +1, 3, '0'), '001') AS MANGO
          FROM TABLE

 

이러한 mysql 쿼리가 있는데 이를 오라클로 변환하려 합니다.

계속 우괄호가 없다는 에러가 출력되어 질문 올립니다 

IFNULL을 NVL로 바꾸고, UNSIGNED를 UNSIGNED INTEGER로 바꿔봤는데 같은ㅇ ㅔ러가 발생합니다 

by 킹오 [2020.07.20 21:29:01]

컬럼 APPLE의 데이터 타입은 오라클 기준 VARCHAR2(30) 입니다 


by pajama [2020.07.20 22:10:02]

오라클은 unsigned integer 라는 타입이 없어서 integer나 number로 사용하셔야 할듯합니다.


by 마농 [2020.07.21 10:21:38]

해당 항목이 이미 앞쪽에 '0' 을 채운 고정자리수 형태라면? '001'
굳이 숫자로 바꾸어 MAX 하지 않아도 됩니다.
굳이 숫자로 바꾸어 MAX 하면 성능이 저하됩니다.
숫자 변환 없이 바로 MAX 한 뒤 숫자로 변환하세요.

LPAD(NVL(MAX(apple) + 1, 1), 3, '0') mango


by 킹오 [2020.07.27 09:25:04]

답이 늦어 죄송합니다 확인하고 해결 잘 하였습니다 감사드립니다! 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입