MSSQL exponential varchar to int, numeric

안녕하십니까.
데이터 베이스 쿼리를 다루는 도중 사소하지만 귀찮은 데이터를 발견하여 그에 대한 포스팅을 해보려고 합니다.

문제 상황

MS-SQL에 저장되어 있는 데이터가 아래와 같이 1E+26인 지수꼴의 형태로 표현되어 있는 경우가 있습니다. 


이는 매우큰 자리를 지수꼴로 리턴하는 형식인데요. 코드상에서 받아오면 어찌되는지는 모르겠지만 디비 데이터를 보는 도중에 이렇게 리턴이 되면 트래킹하기 좀 귀찮아 집니다.

varchar to float

해당 데이터를 변환하기 위해서는 일단 float로 변환해야 합니다. 1E+26이 말그대로 varchar를 표현하고 있기 때문입니다.

select cast(data as float) as data from DBO..TABLE  WITH(NOLOCK)

float numeric

위에서 float까지 변환해도 1E+26으로 표시되어 있습니다. 데이터 형식만 바꿨을뿐(1E+26) decimal의 형식으로 표현하라고 하지 않았기 때문 입니다.
이에 대하여 사용할 수 있는 데이터 형식은 numeric 입니다.
select convert(numeric(38,0),cast(data as float)) as data  as data from DBO..TABLE  WITH(NOLOCK)

결과

아래와 같이 원하는 형식으로 출력이 됩니다!
개꾸르

댓글

이 블로그의 인기 게시물

포켓몬 고 17셀 확인 포고맵 사용 방법

HTTP 오류 500.19 - Internal Server Error 에러 처리법

고려대학교 야간대학원 중간 후기