MSSQL에서 숫자 EXP표기로 온 숫자를 원래 숫자포멧형태로 변환할수 있나요? 0 3 7,914

by 짱구 [DB 기타] Mssql exp 숫자 변환 [2015.10.23 14:14:01]


MSSQL에서

SELECT TOP 1 amount

  FROM BANK

했더니 그 필드 값이  '1.23456789E9' 이렇게 들어있습니다.

이를

1234567890  이렇게 바꿀수 있나요?

예를 들어

SELECT CAST('1.23456789E9' AS NUMERIC(10,2))  -- 오류 문장

by classwizar [2015.10.23 15:30:06]

SELECT  to_number(substr( '1.1141234E9' , 1, INSTR( '1.1141234E9' ,'E') -1  ) )
          *   power( 10,   to_number( substr( '1.1141234E9' , INSTR( '1.1141234E9' ,'E') +1 , length(               '1.1141234E9') ) ) )
FROM DUAL;

쓰고 보니 ms-sql이네요 ,  비슷하게 구현 하셔야 하지 않을까해요 

'E'는 지수를 의미하니 ,   10의 9승을 이야기 하는 것일거고, 

그렇다면 , 엑셀 에서 지수 범위를 구분해서 값을 구한 후  곱하기 해주면 원하시는 결과가 나올거 같습니다. 제가 환경이 오라클이라...... 작성하고 보니;;;;; ms-sql이네요 

 

숫자와 * 10의 9승을 한다. 

숫자와 지수를 구분한다. ( 문자열 찾기 함수라든가 ) 

숫자을 구분하여 열로 자른다.   

그리고 곱한다. 

제공하는 함수는 없으면 구현 하면 될듯합니다. 
 ms-sql
 POWER([대상 숫자], [거듭제곱 횟수])
 SUBSTRING   (  자르고싶은컬럼명  , 시작점 , 끝점 ) 
 charindex( 'E' , '1412341E10' )


by 마농 [2015.10.23 15:36:02]

NUMERIC 대신 FLOAT 써보세요.


by classwizar [2015.10.23 15:39:08]

아.. 그렇구나 ㅠㅠ 나의 무식함이..

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