문법
CONCAT(string1, string2, ..., stringN)
- string1, string2, ..., stringN: 연결할 문자열 또는 값을 지정합니다.
- 최소 2개 이상의 인수를 받아야 하며, 최대 인수 개수는 254개입니다.
특징
- 자동 데이터 타입 변환: 숫자, 날짜, 또는 기타 데이터 타입을 문자열로 자동 변환하여 연결합니다.
- NULL 처리: NULL 값은 빈 문자열로 처리되며, 결과에 영향을 미치지 않습니다.
- 간단한 사용법: + 연산자보다 직관적이고, 데이터 타입 변환을 별도로 지정할 필요가 없습니다.
사용 예제
1. 기본 문자열 연결
SELECT CONCAT('Hello', ' ', 'World') AS Result;
-- 결과: Hello World
2. 숫자와 문자열 연결
SELECT CONCAT('Order Number: ', 12345) AS Result;
-- 결과: Order Number: 12345
3. 날짜와 문자열 연결
SELECT CONCAT('Today is ', GETDATE()) AS Result;
-- 결과: Today is Jan 22 2025 12:34PM
4. NULL 값 처리
SELECT CONCAT('Part1', NULL, 'Part3') AS Result;
-- 결과: Part1Part3
비교: + 연산자와의 차이
+ 연산자
- NULL 값이 있으면 결과가 NULL이 됩니다.
- 수동으로 데이터 타입을 변환해야 할 수도 있습니다.
SELECT 'Part1' + NULL + 'Part3' AS Result;
-- 결과: NULL
CONCAT 함수
- NULL은 빈 문자열로 간주됩니다.
- 자동으로 데이터 타입을 문자열로 변환합니다.
SELECT CONCAT('Part1', NULL, 'Part3') AS Result;
-- 결과: Part1Part3
복잡한 예제
테이블에서 여러 열을 연결
SELECT CONCAT(FirstName, ' ', LastName, ' - ID: ', EmployeeID) AS FullInfo
FROM Employees;
형식을 지정하여 연결
SELECT CONCAT('Today is ', FORMAT(GETDATE(), 'yyyy-MM-dd')) AS Result;
-- 결과: Today is 2025-01-22
주의사항
- 데이터 타입 자동 변환: 데이터 타입 변환이 의도하지 않은 결과를 초래할 수 있으므로, 필요한 경우 CAST나 CONVERT를 사용해 명시적으로 변환하세요.
- 호환성: SQL Server 2012 이전 버전에서는 사용할 수 없으므로, 이 경우 + 연산자나 CAST/CONVERT를 조합해 사용해야 합니다.