[MySql]문자열 중 숫자만 콤마(,) 추가하기

음수, 실수 를 모두 고려하여, 실수부는 그대로 표현하고, 천 단위마다 콤마를 추가한다.

문자열이 포함된 경우는 그대로 표현한다.

-- 5.7 이하 버전에서도 사용가능
SELECT
    str,    
    CASE
        WHEN str REGEXP '^-?[0-9]+(\\.[0-9]+)?$' THEN concat(format(str, 0), substring(str, instr(str, '.'))) 
        ELSE str
    END as with_comma_str    
FROM
    (
        SELECT 'a2' AS str UNION ALL
        SELECT '2a' AS str UNION ALL
        SELECT '123.4.123' AS str UNION ALL
        SELECT '1234.' AS str UNION ALL
        SELECT '1' AS str UNION ALL
        SELECT '1000' AS str UNION ALL
        SELECT '0.1234' AS str UNION ALL        
        SELECT '1234.56' AS str UNION ALL
        SELECT '-1234.00' AS str 
    ) a;

-- 출력결과
str      |with_comma_str|
---------+--------------+
a2       |a2            |
2a       |2a            |
123.4.123|123.4.123     |
1234.    |1234.         |
1        |1             |
1000     |1,000         |
0.1234   |0.1234        |
1234.56  |1,235.56      |
-1234.00 |-1,234.00     |

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다