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