일반적으로 MSSQL에서 Number / Decimal / Int 등 숫자형의 경우 단순 숫자만 저장되기 때문에 보여주기 위해서는 천 단위 콤마가 필요한 경우가 많습니다.
단순 숫자의 천 단위 표시 시에는 #을 활용할 수 있지만, 일부 프로그램에서 #을 변수로 사용하는 경우가 있어 (OZ Report의 경우) #을 Format으로 사용하지 못하는 경우도 있습니다. 때문에 두 가지 방식으로 표현할 수 있습니다.
1. Format(값, ###,###)
2. Replace(Replace(Format(값, 'C', 'en-us'), '$', ''), '.00', '')
첫 번째는 단순 숫자를 콤마 찍는 방식이고, 두 번째는 통화 표기법으로 변경 후에 통화 표기를 없애주는 방식입니다.
(이건 우회하는 방식이라 웬만하면 첫 번째 방식으로 하고 도저히 #이 안되는 경우에만 두 번째 방식으로 사용)
다음 Query를 실행해보면
SELECT FORMAT(1234567, '###,###') as 일반
, FORMAT(1234567, 'C', 'en-us') as Step1_통화형태
, REPLACE(FORMAT(1234567, 'C', 'en-us'), '$', '') as Step2_달러제거
, REPLACE(REPLACE(FORMAT(1234567, 'C', 'en-us'), '$', ''), '.00', '') as Step3_소수점제거
아래와 같이 더 쉽게 확인이 가능합니다.
보시는 바와 같이
첫 번째 컬럼은 일반적으로 Format으로 개행을 넣은 경우이고,
두 번째 컬럼은 통화 형태로만 변경
세 번째 컬럼은 통화로 변경한 값에서 $표시 제거
네 번째 컬럼은 통화로 변경한 값에서 $표시 제거 후 소수점(.00)을 제거
한 형태입니다.
중간에 Format(1234567, 'C', 'en-us')의 경우 달러(en-us) 표기로 한 것이기 때문에 소수점 둘째 자리까지 표기된 것이며 이를 제거한 것입니다. 이를 활용하면 원화(ko-kr), 엔화 (ja-jp) 등으로도 변환 가능합니다.
SELECT FORMAT(1234567, 'C', 'un-es') as UnitedStates
, FORMAT(1234567, 'C', 'ko-kr') as Korea
, FORMAT(1234567, 'C', 'ja-jp') as Japan
, FORMAT(1234567, 'C', 'zh-cn') as Chinese
, FORMAT(1234567, 'C', 'vi-vn') as Vietnam
'개발 창고 > Database' 카테고리의 다른 글
[MSSQL] 특정 위치 문자열 추출 (0) | 2022.04.07 |
---|---|
[MSSQL] 여러 행 값을 한 컬럼에 넣기 (0) | 2022.02.23 |
[DBeaver] 자주 쓰는 단축키 모음 (0) | 2022.02.18 |
[MSSQL] 날짜데이터에서 정보 추출하기 (0) | 2021.02.08 |
[MySQL] 임의의 비밀번호 채번하기 (0) | 2020.11.30 |