CONCAT 함수 - Amazon Redshift

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