CONCAT 함수
CONCAT 함수는 두 표현식을 연결하고 결과 표현식을 반환합니다. 2개 이상의 표현식을 연결하려면 CONCAT 함수를 중첩시켜 사용합니다. 두 표현식 사이의 연결 연산자(||
)는 CONCAT 함수와 동일한 결과를 반환합니다.
구문
CONCAT ( expression1, expression2 )
인수
- expression1, expression2
-
두 인수 모두 고정 길이 문자열, 가변 길이 문자열, 2진 표현식 또는 이러한 입력 중 하나로 평가되는 표현식이 될 수 있습니다.
반환 타입
CONCAT는 표현식을 반환합니다. 표현식의 데이터 유형은 입력 인수와 동일합니다.
입력 표현식의 유형이 다른 경우 Amazon Redshift는 표현식 중 하나의 유형 캐스팅을 암시적으로 시도합니다. 값을 캐스팅할 수 없는 경우 오류가 반환됩니다.
사용 노트
CONCAT 함수와 연결 연산자 모두 표현식 중 하나 또는 둘 모두 NULL이면 결과도 NULL을 반환합니다.
예시
다음 예에서는 문자열 리터럴 2개를 연결합니다:
SELECT CONCAT('December 25, ', '2008');
concat ------------------- December 25, 2008 (1 row)
다음은 CONCAT이 아닌 ||
연산자를 사용하여 동일한 결과를 반환하는 예입니다.
SELECT 'December 25, '||'2008';
?column? ------------------- December 25, 2008 (1 row)
다음 예에서는 다른 CONCAT 함수 내에 중첩된 CONCAT 함수를 사용하여 세 개의 문자열을 연결합니다.
SELECT CONCAT('Thursday, ', CONCAT('December 25, ', '2008'));
concat ----------------------------- Thursday, December 25, 2008 (1 row)
NULL을 포함할 수 있는 열을 연결하려면 NULL이 발생할 경우 지정된 값을 반환하는 NVL 및 COALESCE 함수를 사용하세요. 다음은 NVL을 사용하여 NULL 값이 발견될 때마다 0을 반환하는 예입니다.
SELECT CONCAT(venuename, CONCAT(' seats ', NVL(venueseats, 0))) AS seating FROM venue WHERE venuestate = 'NV' OR venuestate = 'NC' ORDER BY 1 LIMIT 5;
seating ----------------------------------- Ballys Hotel seats 0 Bank of America Stadium seats 73298 Bellagio Hotel seats 0 Caesars Palace seats 0 Harrahs Hotel seats 0 (5 rows)
다음은 VENUE 테이블에서 CITY 값과 STATE 값을 연결하는 쿼리입니다.
SELECT CONCAT(venuecity, venuestate) FROM venue WHERE venueseats > 75000 ORDER BY venueseats;
concat ------------------- DenverCO Kansas CityMO East RutherfordNJ LandoverMD (4 rows)
다음은 CONCAT 함수를 중첩시켜 사용하는 쿼리입니다. 이 쿼리는 VENUE 테이블에서 CITY 값과 STATE 값을 연결하지만 쉼표와 공백으로 결과 문자열을 구분합니다.
SELECT CONCAT(CONCAT(venuecity,', '),venuestate) FROM venue WHERE venueseats > 75000 ORDER BY venueseats;
concat --------------------- Denver, CO Kansas City, MO East Rutherford, NJ Landover, MD (4 rows)
다음 예에서는 2개의 이진 표현식을 연결합니다. 여기서 abc
는 이진 값(616263
의 16진수 표현)이고 def
는 이진 값(646566
의 16진수 표현)입니다. 결과는 이진 값의 16진수 표현으로 자동으로 표시됩니다.
SELECT CONCAT('abc'::VARBYTE, 'def'::VARBYTE);
concat ------------------- 616263646566