MySQL에서 데이터를 조회할 때 숫자 값의 소수점(.)을 쉼표(,)로 변경해야 하는 경우가 있습니다. 예를 들어 유럽식 숫자 표기법처럼 소수 구분 기호를 쉼표로 표시해야 할 때가 그렇습니다. 이럴 때는 REPLACE() 함수를 사용하면 간단하게 해결할 수 있습니다.
REPLACE() 함수 기본 문법
REPLACE() 함수는 문자열 내에서 지정한 문자를 다른 문자로 치환해 줍니다. 기본 문법은 다음과 같습니다.
SELECT REPLACE(yourColumnName, '.', ',') FROM yourTableName;
REPLACE() 함수는 세 개의 인자를 받습니다.
- 첫 번째 인자: 대상이 되는 컬럼 또는 문자열
- 두 번째 인자: 찾을 문자(여기서는 '.')
- 세 번째 인자: 바꿀 문자(여기서는 ',')
예제 테이블 생성
실습을 위해 먼저 FLOAT 타입의 컬럼을 가진 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE DemoTable
(
Value float
);
Query OK, 0 rows affected (0.63 sec)데이터 삽입
INSERT 명령으로 소수점이 포함된 여러 레코드를 입력합니다.
mysql> INSERT INTO DemoTable VALUES(4.56); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DemoTable VALUES(456.23); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable VALUES(1078.3); Query OK, 1 row affected (0.22 sec) mysql> INSERT INTO DemoTable VALUES(2000.50); Query OK, 1 row affected (0.26 sec) mysql> INSERT INTO DemoTable VALUES(78.99); Query OK, 1 row affected (0.16 sec)
저장된 데이터 확인
SELECT 명령으로 테이블에 저장된 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable;
실행 결과는 다음과 같습니다.
+--------+ | Value | +--------+ | 4.56 | | 456.23 | | 1078.3 | | 2000.5 | | 78.99 | +--------+ 5 rows in set (0.00 sec)
소수점을 쉼표로 바꾸는 SELECT 쿼리
이제 REPLACE() 함수를 활용하여 Value 컬럼의 소수점을 쉼표로 변경하는 쿼리입니다.
mysql> SELECT REPLACE(Value,'.',',') FROM DemoTable;
실행 결과를 확인하면 모든 값의 소수점이 쉼표로 바뀌어 출력됩니다.
+------------------------+ | replace(Value,'.',',') | +------------------------+ | 4,56 | | 456,23 | | 1078,3 | | 2000,5 | | 78,99 | +------------------------+ 5 rows in set (0.07 sec)
참고 사항
REPLACE() 함수는 결과를 조회 시점에만 변환해 주며, 실제 테이블에 저장된 원본 데이터는 변경되지 않습니다. 만약 별칭(alias)을 지정하고 싶다면 다음과 같이 AS 키워드를 사용할 수 있습니다.
SELECT REPLACE(Value, '.', ',') AS ConvertedValue FROM DemoTable;
이처럼 REPLACE() 함수를 사용하면 별도의 데이터 수정 없이 SELECT 결과에서 손쉽게 소수점을 쉼표로 변환하여 출력할 수 있습니다.