[PostgreSQL] 숫자에 천단위 콤마(3자리 구분자) 를 적용하는 방법 3가지
PostgreSQL에서 숫자에 천단위 콤마(3자리 구분자) 를 적용하려면 대표적으로 아래 3가지 방법을 사용한다.
1. to_char() 사용 (가장 일반적)
PostgreSQL에서 숫자를 포맷팅할 때 가장 많이 쓰는 방법이야.
✔ 숫자 → 천단위 콤마 문자열
SELECT to_char(1234567, 'FM999,999,999,999') AS formatted;
✔ 소수점 포함
SELECT to_char(1234567.89, 'FM999,999,999,990.00');
2. to_char() + 캐스팅
컬럼 기준으로 많이 사용되는 방식.
SELECT to_char(amount::numeric, 'FM999,999,999,999')
FROM tb_order;
3. 자동 자릿수 확장 (9→최대 자릿수)
숫자가 얼마나 클지 모르면 "FM999G999G999G999D00" 같은 패턴 사용.
✔ G = 그룹구분자(콤마), D = 소수점
SELECT to_char(amount, 'FM999G999G999G999') FROM tb;
실무에서 가장 추천하는 패턴
정수일 때:
SELECT to_char(col, 'FM999,999,999,999') FROM table;
소수점 2자리 고정:
SELECT to_char(col, 'FM999,999,999,990.00') FROM table;
WHERE 절에는 사용하면 안 됨
to_char()는 문자열을 반환하므로,
정렬·비교가 필요한 경우 SELECT 에서만 포맷팅하고
WHERE / ORDER BY는 원래 숫자 컬럼 사용해야 해.
SELECT to_char(price, 'FM999,999,999') AS price_str
FROM tb_product
ORDER BY price; -- O (정상)


