문자열 함수

문자열 함수 (String Functions)

Apache Pinot의 문자열 함수 목록이에요. 각 함수에 대한 자세한 설명과 예시를 제공합니다.

출처: 문서

본문

UPPER(col)
문자열을 대문자로 변환

LOWER(col)
문자열을 소문자로 변환

INITCAP(col)
각 단어의 첫 글자를 대문자로, 나머지를 소문자로 변환

REVERSE(col)
문자열을 뒤집기

SUBSTR(col, startIndex, endIndex)
입력 문자열의 시작~endIndex 부분 문자열을 가져옴. 인덱스는 0부터 시작. 문자열 끝까지 계산하려면 endIndex를 -1로 설정

SUBSTRING(col, beginIndex) / SUBSTRING(col, beginIndex, length)
1부터 시작하는 beginIndex에서 시작하는 입력 문자열의 부분 문자열을 반환. length가 주어지면 그 길이만큼의 부분 문자열을 반환

사용법: SUBSTRING(col, beginIndex) 또는 SUBSTRING(col, beginIndex, length)
예시: SELECT SUBSTRING('hello', 2) FROM myTable returns 'ello'
예시: SELECT SUBSTRING('hello', 2, 3) FROM myTable returns 'ell'

CONCAT(col1, col2, seperator)
구분자를 사용해 두 입력 문자열 연결

TRIM(col)
문자열 양쪽의 공백 제거

TRIM(end, characters, value)
SQL 표준 trim 함수. 문자열의 지정한 끝에서 지정한 characters를 제거. end는 BOTH, LEADING, TRAILING 중 하나

사용법: TRIM('BOTH', 'xy', col)
예시: SELECT TRIM('LEADING', ' ', ' hello ') FROM myTable returns 'hello '

LTRIM(col)
문자열 왼쪽의 공백 제거

RTRIM(col)
문자열 오른쪽의 공백 제거

LENGTH(col)
문자열 길이 계산

octetLength(col) / octet_length(col)
입력 문자열의 UTF-8 표현의 바이트 수 반환

사용법: octetLength(col) 또는 octet_length(col)
예시: SELECT octetLength('é') FROM myTable returns 2

bitLength(col) / bit_length(col)
입력 문자열의 UTF-8 표현의 비트 수 반환

사용법: bitLength(col) 또는 bit_length(col)
예시: SELECT bitLength('é') FROM myTable returns 16

charLength(col) / char_length(col) / characterLength(col) / character_length(col)
입력 문자열의 유니코드 코드 포인트 수 반환. LENGTH와 달리 이모지 같은 보충 문자는 단일 문자로 계산

사용법: charLength(col) 또는 char_length(col)
예시: SELECT charLength('😀') FROM myTable returns 1

levenshtein_distance(string1, string2)
두 문자열 사이의 Levenshtein 편집 거리 반환

SOUNDEX(string)
문자열의 4자 Soundex 코드 반환. 빈 문자열은 0000 반환

DIFFERENCE(string1, string2)
두 Soundex 코드를 비교해 0~4 사이의 유사도 점수 반환

hammingDistance(string1, string2)
같은 길이의 두 문자열 사이의 해밍 거리 반환. 길이가 다르면 -1 반환

사용법: hammingDistance(col1, col2)
예시: SELECT hammingDistance('karolin', 'kathrin') FROM myTable returns 3

STRPOS(col, find, N)
입력에서 find 문자열의 N번째 인스턴스 찾기. 입력 문자열이 비어 있으면 0 반환. N번째 인스턴스를 찾지 못하거나 입력이 null이면 -1 반환

strrpos(col, find) / strrpos(col, find, N)
입력 문자열에서 find의 마지막 발생 인덱스 반환. N이 주어지면 문자열 끝에서 세어 N번째 발생 반환

사용법: strrpos(col, find) 또는 strrpos(col, find, N)
예시: SELECT strrpos('hello world hello', 'hello') FROM myTable

contains(col, substring)
입력 문자열이 지정한 부분 문자열을 포함하면 true, 그렇지 않으면 false 반환

사용법: contains(col, substring)
예시: SELECT contains(playerName, 'john') FROM myTable

ascii(col)
첫 번째 문자의 정수 코드 반환. 빈 문자열은 0 반환

사용법: ascii(col)
예시: SELECT ascii('A') FROM myTable returns 65

STARTSWITH(col, prefix)
컬럼이 접두사 문자열로 시작하면 true 반환

startsWithCaseInsensitive(col, prefix)
입력 문자열이 대소문자 무시하고 prefix로 시작하면 true 반환

사용법: startsWithCaseInsensitive(col, prefix)
예시: SELECT startsWithCaseInsensitive('Hello World', 'hello') FROM myTable returns true

endsWith(col, suffix)
입력 문자열이 지정한 접미사로 끝나면 true, 그렇지 않으면 false 반환

사용법: endsWith(col, suffix)
예시: SELECT endsWith(playerName, 'son') FROM myTable

endsWithCaseInsensitive(col, suffix)
입력 문자열이 대소문자 무시하고 suffix로 끝나면 true 반환

사용법: endsWithCaseInsensitive(col, suffix)
예시: SELECT endsWithCaseInsensitive('Hello World', 'WORLD') FROM myTable returns true

strcmp(string1, string2)
두 문자열을 사전식으로 비교. 같으면 0, 첫 번째 문자열이 사전식으로 더 작으면 0보다 작은 값, 더 크면 0보다 큰 값 반환

사용법: strcmp(col1, col2)
예시: SELECT strcmp(name1, name2) FROM myTable

REPLACE(col, find, substitute)
입력에서 find의 모든 인스턴스를 replace로 교체

RPAD(col, size, pad)
최종 size에 도달하도록 오른쪽부터 pad로 채운 문자열

LPAD(col, size, pad)
최종 size에 도달하도록 왼쪽부터 pad로 채운 문자열

leftSubStr(col, length) / left(col, length)
입력 문자열에서 가장 왼쪽 length 문자 반환

사용법: leftSubStr(col, length) 또는 left(col, length)
예시: SELECT leftSubStr('hello', 3) FROM myTable returns 'hel'

rightSubStr(col, length) / right(col, length)
입력 문자열에서 가장 오른쪽 length 문자 반환

사용법: rightSubStr(col, length) 또는 right(col, length)
예시: SELECT rightSubStr('hello', 3) FROM myTable returns 'llo'

overlay(str, replacement, start) / overlay(str, replacement, start, length)
Pinot 함수 호출 문법으로 SQL 표준 OVERLAY 의미를 구현. 1부터 시작하는 start 위치에서 시작하는 str의 문자를 replacement로 교체. length가 생략되면 length(replacement) 문자를 교체

start는 유효 범위 [1, length(str) + 1]로 제한되므로, 문자열 시작 전의 값은 첫 문자에서 시작하고 문자열 끝을 넘는 값은 replacement를 덧붙입니다. length = 0은 문자 삭제 없이 삽입을 수행하고, 큰 length 값은 문자열 끝까지만 삭제합니다.

사용법: overlay(str, replacement, start) 또는 overlay(str, replacement, start, length)
예시: SELECT overlay('hello world', 'there', 7) FROM myTable returns 'hello there'
예시: SELECT overlay('abcdef', 'XY', 3, 0) FROM myTable returns 'abXYcdef'
예시: SELECT overlay('abc', 'XY', 10) FROM myTable returns 'abcXY'

SPLITPART(str, delimiter, index)
구분자로 문자열을 나누고 결과에서 요소 하나 반환

REGEXPEXTRACT(value, regexp[, group[, defaultValue]])
제공된 정규식과 일치하는 값 추출

REGEXPREPLACE(inputStr, matchRegexp, replaceRegexp[, matchStartPos[, occurrence[, flag]]])
문자열 또는 정규식 패턴을 대상 문자열 또는 정규식 패턴으로 찾아 교체

REMOVE(input, search)
문자열에서 search의 모든 인스턴스 제거

ENCODEURL(string)
URL 인코딩 문자열 반환

DECODEURL(string)
URL 디코딩 문자열 반환

더 알아보기 (Learn more)