프로그래머스에서 노선별 평균 역 사이 거리 조회하기 문제를 풀다가 DBMS별로 문자열을 결합하는 방식을 이번기회에 정리함
MySQL에서는 CONCAT 함수를 사용하여 문자열을 결합
MySQL에서는 VARCHAR 대신 CHAR를 사용
SELECT
ROUTE,
CONCAT(CAST(ROUND(SUM(D_BETWEEN_DIST), 1) AS CHAR), 'km') AS TOTAL_DISTANCE,
CONCAT(CAST(ROUND(AVG(D_BETWEEN_DIST), 2) AS CHAR), 'km') AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY LINE, ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;
MS SQL Server에서는 + 연산자를 사용하여 문자열을 결합
SELECT
ROUTE,
CAST(ROUND(SUM(D_BETWEEN_DIST), 1) AS VARCHAR(20)) + 'km' AS TOTAL_DISTANCE,
CAST(ROUND(AVG(D_BETWEEN_DIST), 2) AS VARCHAR(20)) + 'km' AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY LINE, ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;
Oracle에서는 || 연산자를 사용하여 문자열을 결합
SELECT
ROUTE,
CAST(ROUND(SUM(D_BETWEEN_DIST), 1) AS VARCHAR(20)) || 'km' AS TOTAL_DISTANCE,
CAST(ROUND(AVG(D_BETWEEN_DIST), 2) AS VARCHAR(20)) || 'km' AS AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY LINE, ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC;