MySQL에서 소수점 이하 후행 0을 제거하는 방법
MySQL에서 DECIMAL 타입으로 저장된 값은 컬럼에 정의된 소수점 자릿수만큼 후행 0(trailing zero)이 함께 표시됩니다. 예를 들어 decimal(5,2)로 정의된 컬럼에 405.5를 저장하면 405.50으로 출력되죠. 이런 후행 0을 제거하고 싶다면 TRIM() 함수를 활용하면 간단하게 해결할 수 있습니다.
기본 문법
후행 0을 제거하는 기본 문법은 다음과 같습니다.
SELECT TRIM(yourColumnName)+0 FROM yourTableName;
여기서 TRIM() 함수 뒤에 +0을 붙이는 것이 핵심입니다. 숫자에 0을 더하면 MySQL이 결과를 숫자 타입으로 변환하면서 불필요한 후행 0이 자동으로 사라지기 때문입니다.
예제 테이블 생성
실제 동작을 확인하기 위해 테스트용 테이블을 만들어 보겠습니다.
mysql> create table removeTrailingZeroInDecimal
-> (
-> Id int not null auto_increment,
-> Amount decimal(5,2),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (1.01 sec)테스트 데이터 삽입
INSERT 명령어로 다양한 형태의 소수 값을 입력합니다.
mysql> insert into removeTrailingZeroInDecimal(Amount) values(405.50); Query OK, 1 row affected (0.22 sec) mysql> insert into removeTrailingZeroInDecimal(Amount) values(23.05); Query OK, 1 row affected (0.17 sec) mysql> insert into removeTrailingZeroInDecimal(Amount) values(12.050); Query OK, 1 row affected (0.14 sec) mysql> insert into removeTrailingZeroInDecimal(Amount) values(125.23); Query OK, 1 row affected (0.14 sec) mysql> insert into removeTrailingZeroInDecimal(Amount) values(125.00); Query OK, 1 row affected (0.15 sec) mysql> insert into removeTrailingZeroInDecimal(Amount) values(126); Query OK, 1 row affected (0.14 sec)
저장된 데이터 확인
SELECT 문으로 전체 데이터를 조회해 보겠습니다.
mysql> select *from removeTrailingZeroInDecimal;
실행 결과는 다음과 같습니다. decimal(5,2) 정의에 따라 모든 값이 소수점 둘째 자리까지 표시됩니다.
+----+--------+ | Id | Amount | +----+--------+ | 1 | 405.50 | | 2 | 23.05 | | 3 | 12.05 | | 4 | 125.23 | | 5 | 125.00 | | 6 | 126.00 | +----+--------+ 6 rows in set (0.00 sec)
TRIM() 함수로 후행 0 제거하기
이제 TRIM() 함수를 적용해 후행 0을 제거해 보겠습니다.
mysql> SELECT TRIM(Amount)+0 FROM removeTrailingZeroInDecimal;
실행 결과, 후행 0이 모두 제거된 깔끔한 숫자가 출력됩니다.
+----------------+ | TRIM(Amount)+0 | +----------------+ | 405.5 | | 23.05 | | 12.05 | | 125.23 | | 125 | | 126 | +----------------+ 6 rows in set (0.00 sec)
결과 분석
- 405.50 → 405.5: 소수점 첫째 자리까지만 유효하므로 마지막 0이 제거됨
- 23.05 → 23.05: 중간에 있는 0은 유의미한 값이므로 유지됨
- 125.00 → 125: 소수 부분이 모두 0이면 정수 형태로 표시됨
- 126.00 → 126: 저장 시 소수점 없이 입력했어도 동일하게 처리됨
추가 팁: CAST나 FORMAT 함수와의 비교
TRIM()+0 조합 외에도 상황에 따라 다른 방법을 고려할 수 있습니다.
CAST(Amount AS CHAR): 문자열로 변환하지만 후행 0이 그대로 남을 수 있습니다.Amount + 0만 사용: 암시적 형변환으로 대부분의 경우 후행 0이 제거되지만, TRIM()을 함께 쓰면 더 안전합니다.
정리하자면, MySQL에서 DECIMAL 값의 불필요한 후행 0을 제거하는 가장 간단하고 확실한 방법은 TRIM(컬럼명)+0 패턴을 사용하는 것입니다. 데이터 조회 화면을 깔끔하게 만들고 싶을 때 유용하게 활용해 보세요.