문자열을 검색하는 함수와 문자열을 치환하는 함수는 별도로 설명합니다.
아래 문서는 system.functions 시스템 테이블에서 생성되었습니다.
도입 버전: v20.1.0
CRC-32-IEEE 802.3 다항식과 초기값 0xffffffff(zlib 구현)를 사용해 문자열의 CRC32 체크섬을 계산합니다.
구문
인수
s — CRC32를 계산할 대상 문자열입니다. String
반환 값
문자열의 CRC32 체크섬을 반환합니다. UInt32
예시
사용 예시
SELECT CRC32('ClickHouse')
┌─CRC32('ClickHouse')─┐
│ 1538217360 │
└─────────────────────┘
도입 버전: v20.1.0
CRC-32-IEEE 802.3 다항식을 사용해 문자열의 CRC32 체크섬을 계산합니다.
구문
인수
s — CRC32를 계산할 대상 문자열입니다. String
반환 값
문자열의 CRC32 체크섬을 반환합니다. UInt32
예시
사용 예시
SELECT CRC32IEEE('ClickHouse');
┌─CRC32IEEE('ClickHouse')─┐
│ 3089448422 │
└─────────────────────────┘
도입 버전: v20.1.0
CRC-64-ECMA 다항식을 사용해 문자열의 CRC64 체크섬을 계산합니다.
구문
인수
s — CRC64를 계산할 대상 문자열입니다. String
반환 값
문자열의 CRC64 체크섬을 반환합니다. UInt64
예시
사용 예시
SELECT CRC64('ClickHouse');
┌──CRC64('ClickHouse')─┐
│ 12126588151325169346 │
└──────────────────────┘
appendTrailingCharIfAbsent
도입 버전: v1.1.0
s가 비어 있지 않고 문자 c로 끝나지 않으면 문자열 s의 끝에 문자 c를 추가합니다.
구문
appendTrailingCharIfAbsent(s, c)
인수
반환 값
문자열 s가 c로 끝나지 않으면 끝에 문자 c를 덧붙인 문자열 s를 반환합니다. String
예시
사용 예시
SELECT appendTrailingCharIfAbsent('https://example.com', '/');
┌─appendTraili⋯.com', '/')─┐
│ https://example.com/ │
└──────────────────────────┘
도입 버전: v22.11.0
문자열 s의 첫 번째 문자의 ASCII 코드 포인트를 Int32로 반환합니다.
구문
인수
반환 값
첫 번째 문자의 ASCII 코드 포인트를 반환합니다. s가 비어 있으면 결과는 0입니다. 첫 번째 문자가 ASCII 문자가 아니거나 UTF-16의 Latin-1 Supplement 범위에 속하지 않으면 결과는 정의되지 않습니다. Int32
예시
사용 예시
┌─ascii('234')─┐
│ 50 │
└──────────────┘
도입 버전: v25.6.0
Base32 (RFC 4648) 문자열을 디코딩합니다.
문자열이 올바른 Base32 인코딩 형식이 아니면 예외가 발생합니다.
구문
인수
encoded — String 컬럼 또는 상수. String
반환 값
인수를 디코딩한 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT base32Decode('IVXGG33EMVSA====');
┌─base32Decode('IVXGG33EMVSA====')─┐
│ Encoded │
└──────────────────────────────────┘
도입 버전: v25.6.0
문자열을 Base32로 인코딩합니다.
구문
인수
plaintext — 인코딩할 평문입니다. String
반환 값
인수의 인코딩된 값을 담은 문자열을 반환합니다. String 또는 FixedString
예시
사용 예시
SELECT base32Encode('Encoded')
┌─base32Encode('Encoded')─┐
│ IVXGG33EMVSA==== │
└─────────────────────────┘
도입 버전: v22.7.0
Base58 문자열을 디코딩합니다.
문자열이 유효한 Base58 인코딩 형식이 아니면 예외가 발생합니다.
선택 사항인 두 번째 인수 expected_size를 지정하면 최적화된 고정 크기 디코더를 사용할 수 있습니다.
현재 지원되는 값은 32와 64입니다. 그 밖의 값에는 범용 디코더가 사용됩니다.
최적화된 디코더를 선택했지만 입력을 정확히 해당 바이트 수로 디코딩할 수 없는 경우,
함수는 예외를 발생시킵니다(tryBase58Decode는 빈 문자열을 반환).
구문
base58Decode(encoded[, expected_size])
인수
반환 값
인수의 디코딩된 값을 포함하는 문자열을 반환합니다. String
예시
사용 예시
SELECT base58Decode('JxF12TrwUP45BMd');
┌─base58Decode⋯rwUP45BMd')─┐
│ Hello World │
└──────────────────────────┘
도입 버전: v22.7.0
문자열을 Base58 방식으로 인코딩합니다.
구문
인수
plaintext — 인코딩할 평문입니다. String
반환 값
인수의 인코딩 결과를 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT base58Encode('ClickHouse');
┌─base58Encode('ClickHouse')─┐
│ 4nhk8K7GHXf6zx │
└────────────────────────────┘
도입 버전: v18.16.0
RFC 4648에 따라 Base64 형식의 문자열을 디코딩합니다.
오류가 발생할 경우 예외를 발생시킵니다.
구문
별칭: FROM_BASE64
인수
encoded — 디코딩할 String 컬럼 또는 상수입니다. 문자열이 올바른 Base64 인코딩 형식이 아니면 예외가 발생합니다. String
반환 값
디코딩된 문자열을 반환합니다. String
예시
사용 예시
SELECT base64Decode('Y2xpY2tob3VzZQ==')
┌─base64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse │
└──────────────────────────────────┘
도입 버전: v18.16.0
RFC 4648에 따라 문자열을 Base64 형식으로 인코딩합니다.
구문
별칭: TO_BASE64
인수
plaintext — 디코딩할 평문 컬럼 또는 상수입니다. String
반환 값
인수의 인코딩된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT base64Encode('clickhouse')
┌─base64Encode('clickhouse')─┐
│ Y2xpY2tob3VzZQ== │
└────────────────────────────┘
도입 버전: v24.6.0
RFC 4648에 따라 URL 안전 문자 집합을 사용한 Base64 표현으로 된 문자열을 디코딩합니다.
오류가 발생하면 예외를 발생시킵니다.
구문
인수
encoded — 인코딩할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base64로 인코딩되어 있지 않으면 예외가 발생합니다. String
반환 값
인수의 디코딩된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com │
└───────────────────────────────────────────────────┘
도입 버전: v18.16.0
URL에 안전한 알파벳을 사용해 문자열을 Base64(RFC 4648) 형식으로 인코딩합니다.
구문
base64URLEncode(plaintext)
인수
plaintext — 인코딩할 평문 컬럼 또는 상수입니다. String
반환 값
인수의 인코딩된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT base64URLEncode('https://clickhouse.com')
┌─base64URLEncode('https://clickhouse.com')─┐
│ aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ │
└───────────────────────────────────────────┘
도입 버전: v20.1.0
마지막 슬래시 또는 백슬래시 뒤에 있는 문자열의 끝부분을 추출합니다.
이 함수는 경로에서 파일 이름을 추출할 때 자주 사용됩니다.
구문
인수
expr — 문자열 표현식입니다. 백슬래시는 이스케이프해야 합니다. String
반환 값
입력 문자열에서 마지막 슬래시 또는 백슬래시 뒤의 부분을 반환합니다. 입력 문자열이 슬래시 또는 백슬래시로 끝나면 함수는 빈 문자열을 반환합니다. 슬래시나 백슬래시가 없으면 원래 문자열을 반환합니다. String
예시
Unix 경로에서 파일 이름 추출
SELECT 'some/long/path/to/file' AS a, basename(a)
┌─a──────────────────────┬─basename('some/long/path/to/file')─┐
│ some/long/path/to/file │ file │
└────────────────────────┴────────────────────────────────────┘
Windows 경로에서 파일명 추출
SELECT 'some\\long\\path\\to\\file' AS a, basename(a)
┌─a──────────────────────┬─basename('some\\long\\path\\to\\file')─┐
│ some\long\path\to\file │ file │
└────────────────────────┴────────────────────────────────────────┘
경로 구분자가 없는 String
SELECT 'some-file-name' AS a, basename(a)
┌─a──────────────┬─basename('some-file-name')─┐
│ some-file-name │ some-file-name │
└────────────────┴────────────────────────────┘
도입 버전: v23.9.0
두 바이트 문자열 사이의 해밍 거리를 계산합니다.
구문
byteHammingDistance(s1, s2)
별칭: mismatches
인수
반환 값
두 문자열 간의 해밍 거리를 반환합니다. UInt64
예시
사용 예시
SELECT byteHammingDistance('karolin', 'kathrin')
┌─byteHammingDistance('karolin', 'kathrin')─┐
│ 3 │
└───────────────────────────────────────────┘
도입 버전: v26.3.0
UTF-8 문자열에 유니코드 대소문자 접기를 적용하여, 대소문자를 구분하지 않는 비교에 적합한 소문자와 유사한 정규화된 형태로 변환합니다.
표준 유니코드 대소문자 접기를 적용합니다. 대소문자 접기의 영향을 받지 않는 호환 문자는 유지되지만
(예: 로마 숫자, 동그라미 숫자), ffi 같은 일부 합자는 유니코드 대소문자 접기 자체에서 확장되므로 여전히 분해됩니다.
구문
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
케이스 폴딩된 UTF-8 문자열입니다. String
예시
기본 케이스 폴딩
SELECT caseFoldUTF8('Straße')
┌─caseFoldUTF8('Straße')─┐
│ strasse │
└─────────────────────────┘
도입 버전: v25.2.0
두 문자열을 사전식 순서로 비교합니다.
구문
compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes)
인수
s1 — 비교할 첫 번째 문자열입니다. String
s2 — 비교할 두 번째 문자열입니다. String
s1_offset — 비교를 시작할 s1 내 위치(0부터 시작)입니다. UInt*
s2_offset — 비교를 시작할 s2 내 위치(0부터 시작하는 인덱스)입니다. UInt*
num_bytes — 두 문자열에서 비교할 최대 바이트 수입니다. s1_offset(또는 s2_offset) + num_bytes가 입력 문자열의 끝을 넘으면 num_bytes는 그에 맞게 줄어듭니다. UInt*
반환 값
반환 값:
s1[s1_offset : s1_offset + num_bytes] < s2[s2_offset : s2_offset + num_bytes]이면 -1을 반환합니다.
s1[s1_offset : s1_offset + num_bytes] = s2[s2_offset : s2_offset + num_bytes]이면 0을 반환합니다.
s1[s1_offset : s1_offset + num_bytes] > s2[s2_offset : s2_offset + num_bytes]이면 1을 반환합니다.
Int8
예시
사용 예시
SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result
┌─result─┐
│ 0 │
└────────┘
도입 버전: v1.1.0
지정된 인수를 연결합니다.
String 또는 FixedString 타입이 아닌 인수는 기본 직렬화를 사용해 문자열로 변환됩니다.
이 경우 성능이 저하되므로 String/FixedString이 아닌 인수는 사용하지 않는 것이 좋습니다.
구문
인수
s1, s2, ... — 개수 제한이 없는 임의의 타입의 값입니다. Any
반환 값
인수를 이어 붙여 생성한 String을 반환합니다. 인수 중 하나라도 NULL이면 함수는 NULL을 반환합니다. 인수가 없으면 빈 문자열을 반환합니다. Nullable(String)
예시
문자열 연결
SELECT concat('Hello, ', 'World!')
┌─concat('Hello, ', 'World!')─┐
│ Hello, World! │
└─────────────────────────────┘
숫자 이어 붙이기
┌─concat(42, 144)─┐
│ 42144 │
└─────────────────┘
도입 버전: v1.1.0
concat과 비슷하지만 concat(s1, s2, ...) → sn이 단사적이라고 가정합니다.
즉, 서로 다른 인수에 대해서는 서로 다른 결과를 반환합니다.
GROUP BY를 최적화하는 데 사용할 수 있습니다.
구문
concatAssumeInjective([s1, s2, ...])
인수
반환 값
인수를 연결해 생성된 문자열을 반환합니다. 인수 값 중 하나라도 NULL이면 함수는 NULL을 반환합니다. 인수가 전달되지 않으면 빈 문자열을 반환합니다. String
예시
GROUP BY 최적화
SELECT concat(key1, key2), sum(value) FROM key_val GROUP BY concatAssumeInjective(key1, key2)
┌─concat(key1, key2)─┬─sum(value)─┐
│ Hello, World! │ 3 │
│ Hello, World! │ 2 │
│ Hello, World │ 3 │
└────────────────────┴────────────┘
도입 버전: v22.12.0
제공된 문자열을 지정된 구분자를 사이에 두고 연결합니다.
구문
concatWithSeparator(sep[, exp1, exp2, ...])
별칭: concat_ws
인수
sep — 사용할 구분자입니다. const String 또는 const FixedString
exp1, exp2, ... — 연결할 표현식입니다. String 또는 FixedString 타입이 아닌 인수는 기본 직렬화(serialization)를 사용해 문자열로 변환됩니다. 이 경우 성능이 저하되므로 String/FixedString이 아닌 인수는 사용하지 않는 것이 좋습니다. Any
반환 값
인수를 연결해 생성된 String을 반환합니다. 인수 값 중 하나라도 NULL이면 함수는 NULL을 반환합니다. String
예시
사용 예시
SELECT concatWithSeparator('a', '1', '2', '3', '4')
┌─concatWithSeparator('a', '1', '2', '3', '4')─┐
│ 1a2a3a4 │
└──────────────────────────────────────────────┘
concatWithSeparatorAssumeInjective
도입 버전: v22.12.0
concatWithSeparator와 비슷하지만, concatWithSeparator(sep[,exp1, exp2, ... ]) → result가 단사적이라고 가정합니다.
함수는 서로 다른 인수에 대해 서로 다른 결과를 반환할 때 단사적이라고 합니다.
GROUP BY 최적화에 사용할 수 있습니다.
구문
concatWithSeparatorAssumeInjective(sep[, exp1, exp2, ... ])
인수
sep — 사용할 구분자입니다. const String 또는 const FixedString
exp1, exp2, ... — 연결할 표현식입니다. String 또는 FixedString 타입이 아닌 인수는 기본 직렬화(serialization)를 사용해 문자열로 변환됩니다. 이로 인해 성능이 저하되므로 String/FixedString이 아닌 인수는 사용하지 않는 것이 좋습니다. String 또는 FixedString
반환 값
인수를 연결해 생성한 String을 반환합니다. 인수 값 중 하나라도 NULL이면 함수는 NULL을 반환합니다. String
예시
사용 예시
CREATE TABLE user_data (
user_id UInt32,
first_name String,
last_name String,
score UInt32
)
ENGINE = MergeTree
ORDER BY tuple();
INSERT INTO user_data VALUES
(1, 'John', 'Doe', 100),
(2, 'Jane', 'Smith', 150),
(3, 'John', 'Wilson', 120),
(4, 'Jane', 'Smith', 90);
SELECT
concatWithSeparatorAssumeInjective('-', first_name, last_name) as full_name,
sum(score) as total_score
FROM user_data
GROUP BY concatWithSeparatorAssumeInjective('-', first_name, last_name);
┌─full_name───┬─total_score─┐
│ Jane-Smith │ 240 │
│ John-Doe │ 100 │
│ John-Wilson │ 120 │
└─────────────┴─────────────┘
도입 버전: v25.10.0
서로 다른 진법 사이에서 숫자를 변환합니다.
이 함수는 숫자를 한 진법에서 다른 진법으로 변환합니다. 2부터 36까지의 진법을 지원합니다.
10보다 큰 진법에서는 문자 A-Z(대소문자 구분 없음)를 사용해 10~35를 나타냅니다.
이 함수는 MySQL의 CONV() 함수와 호환됩니다.
구문
conv(number, from_base, to_base)
인수
number — 변환할 숫자입니다. 문자열 또는 숫자형일 수 있습니다. - from_base — 원래 진법(2-36)입니다. 정수여야 합니다. - to_base — 대상 진법(2-36)입니다. 정수여야 합니다.
반환 값
대상 진법으로 나타낸 숫자의 문자열 형식입니다.
예시
10진수를 2진수로 변환
16진수를 10진수로 변환
SELECT conv('FF', 16, 10)
음수로 변환하기
SELECT conv('-1', 10, 16)
이진수를 팔진수로 변환
SELECT conv('1010', 2, 8)
도입 버전: v1.1.0
문자열 s를 인코딩 from에서 인코딩 to로 변환해 반환합니다.
구문
convertCharset(s, from, to)
인수
반환 값
문자열 s를 인코딩 from에서 인코딩 to로 변환한 값을 반환합니다. String
예시
사용 예시
SELECT convertCharset('Café', 'UTF-8', 'ISO-8859-1');
┌─convertChars⋯SO-8859-1')─┐
│ Caf� │
└──────────────────────────┘
damerauLevenshteinDistance
도입 버전: v24.1.0
두 바이트 문자열 간의 Damerau-Levenshtein 거리를 계산합니다.
구문
damerauLevenshteinDistance(s1, s2)
인수
반환 값
두 문자열 사이의 Damerau-Levenshtein 거리를 반환합니다. UInt64
예시
사용 예시
SELECT damerauLevenshteinDistance('clickhouse', 'mouse')
┌─damerauLevenshteinDistance('clickhouse', 'mouse')─┐
│ 6 │
└───────────────────────────────────────────────────┘
도입 버전: v23.9.0
문자열에 포함된 HTML 엔터티를 해당하는 문자로 디코딩합니다.
구문
인수
s — 디코딩할 HTML 엔터티가 포함된 String입니다. String
반환 값
HTML 엔터티가 디코딩된 문자열을 반환합니다. String
예시
사용 예시
SELECT decodeHTMLComponent('<div>Hello & "World"</div>')
┌─decodeHTMLComponent('<div>Hello & "World"</div>')─┐
│ <div>Hello & "World"</div> │
└─────────────────────────────────────────────────────────────────────────────┘
Introduced in: v21.2.0
문자열에 있는 XML 엔터티를 해당 문자로 디코딩합니다.
구문
인수
s — 디코딩할 XML 엔터티가 포함된 String입니다. String
반환 값
제공된 문자열에서 XML 엔터티를 디코딩한 String을 반환합니다. String
예시
사용 예시
SELECT decodeXMLComponent('<tag>Hello & World</tag>')
┌─decodeXMLCom⋯;/tag>')─┐
│ <tag>Hello & World</tag> │
└──────────────────────────┘
도입 버전: v23.9.0
두 바이트 문자열 간의 편집 거리를 계산합니다.
구문
별칭: levenshteinDistance
인수
반환 값
두 문자열 간의 편집 거리를 반환합니다. UInt64
예시
사용 예시
SELECT editDistance('clickhouse', 'mouse')
┌─editDistance('clickhouse', 'mouse')─┐
│ 6 │
└─────────────────────────────────────┘
도입 버전: v24.6.0
두 UTF8 문자열 간의 편집 거리를 계산합니다.
구문
별칭: levenshteinDistanceUTF8
인수
반환 값
두 UTF8 문자열 간의 편집 거리를 반환합니다. UInt64
예시
사용 예시
SELECT editDistanceUTF8('我是谁', '我是我')
┌─editDistanceUTF8('我是谁', '我是我')──┐
│ 1 │
└─────────────────────────────────────┘
도입 버전: v21.1.0
문자열을 XML 텍스트 노드나 속성에 넣을 수 있도록 문자를 이스케이프합니다.
구문
인수
반환 값
이스케이프된 문자열을 반환합니다. String
예시
사용 예시
SELECT
'<tag>Hello & "World"</tag>' AS original,
encodeXMLComponent('<tag>Hello & "World"</tag>') AS xml_encoded;
┌─original───────────────────┬─xml_encoded──────────────────────────────────────────┐
│ <tag>Hello & "World"</tag> │ <tag>Hello & "World"</tag> │
└────────────────────────────┴──────────────────────────────────────────────────────┘
도입 버전: v1.1.0
문자열이 지정된 접미사로 끝나는지 확인합니다.
구문
인수
반환 값
s가 suffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT endsWith('ClickHouse', 'House');
┌─endsWith('Cl⋯', 'House')─┐
│ 1 │
└──────────────────────────┘
도입 버전: v25.10.0
문자열이 지정된 대소문자 구분 없는 접미사로 끝나는지 확인합니다.
구문
endsWithCaseInsensitive(s, suffix)
인수
s — 검사할 문자열입니다. String
suffix — 대소문자를 구분하지 않고 검사할 접미사입니다. String
반환 값
s가 대소문자를 구분하지 않는 suffix로 끝나면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT endsWithCaseInsensitive('ClickHouse', 'HOUSE');
┌─endsWithCaseInsensitive('Cl⋯', 'HOUSE')─┐
│ 1 │
└─────────────────────────────────────────┘
endsWithCaseInsensitiveUTF8
도입 버전: v25.10.0
문자열 s가 대소문자를 구분하지 않는 suffix로 끝나는지 여부를 반환합니다.
문자열에 유효한 UTF-8로 인코딩된 텍스트가 포함되어 있다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다.
구문
endsWithCaseInsensitiveUTF8(s, suffix)
인수
s — 확인할 문자열입니다. String
suffix — 확인할, 대소문자를 구분하지 않는 접미사입니다. String
반환 값
s가 대소문자를 구분하지 않는 suffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT endsWithCaseInsensitiveUTF8('данных', 'ых');
┌─endsWithCaseInsensitiveUTF8('данных', 'ых')─┐
│ 1 │
└─────────────────────────────────────────────┘
도입 버전: v23.8.0
문자열 s가 suffix로 끝나는지 여부를 반환합니다.
문자열이 유효한 UTF-8로 인코딩된 텍스트라고 가정합니다.
이 가정이 충족되지 않아도 예외가 발생하지 않으며, 결과는 정의되지 않습니다.
구문
인수
반환 값
s가 suffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT endsWithUTF8('данных', 'ых');
┌─endsWithUTF8('данных', 'ых')─┐
│ 1 │
└──────────────────────────────┘
도입 버전: v21.3.0
HTML 또는 XHTML의 텍스트 콘텐츠를 추출합니다.
이 함수는 HTML 태그, 주석, script/style 요소를 제거하고 텍스트 콘텐츠만 남깁니다. 구체적으로 다음을 처리합니다.
- 모든 HTML/XML 태그 제거
- 주석 제거 (
{/* */})
- script 및 style 요소와 해당 콘텐츠 제거
- CDATA 섹션 처리(원문 그대로 복사)
- 공백의 적절한 처리 및 정규화
참고: HTML 엔터티는 디코딩되지 않으므로, 필요한 경우 별도의 함수로 처리해야 합니다.
구문
extractTextFromHTML(html)
인수
html — 텍스트를 추출할 HTML 콘텐츠를 포함하는 String입니다. String
반환 값
정규화된 공백이 적용된 텍스트 콘텐츠를 반환합니다. String
예시
사용 예시
SELECT extractTextFromHTML('
<html>
<head><title>Page Title</title></head>
<body>
<p>Hello <b>World</b>!</p>
<script>alert("test");</script>
<!-- comment -->
</body>
</html>
');
┌─extractTextFromHTML('<html><head>...')─┐
│ Page Title Hello World! │
└────────────────────────────────────────┘
도입 버전: v23.7.0
여러 줄 문자열에서 첫 번째 줄을 반환합니다.
구문
인수
반환 값
입력 문자열의 첫 번째 줄을 반환합니다. 줄 구분자가 없으면 전체 문자열을 반환합니다. String
예시
사용 예시
SELECT firstLine('foo\\nbar\\nbaz')
┌─firstLine('foo\nbar\nbaz')─┐
│ foo │
└────────────────────────────┘
도입 버전: v24.1.0
Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 유니코드(UTF-8) 표현(ToUnicode 알고리즘)을 반환합니다.
오류가 발생하면(예: 입력이 유효하지 않은 경우) 입력 문자열을 반환합니다.
대소문자 정규화로 인해 idnaEncode()와 idnaDecode()를 반복 적용해도 원래 문자열이 반환된다고 보장되지는 않습니다.
구문
인수
반환 값
입력 값에 적용되는 IDNA 메커니즘에 따라 입력 문자열의 유니코드(UTF-8) 표현을 반환합니다. String
예시
사용 예시
SELECT idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')
┌─idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')─┐
│ straße.münchen.de │
└───────────────────────────────────────────────┘
도입 버전: v24.1.0
Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 ASCII 표현(ToASCII 알고리즘)을 반환합니다.
입력 문자열은 UTF로 인코딩되어 있어야 하며 ASCII 문자열로 변환 가능해야 합니다. 그렇지 않으면 예외가 발생합니다.
퍼센트 디코딩이나 탭, 공백 또는 제어 문자의 제거는 수행되지 않습니다.
구문
인수
반환 값
입력 값에 적용된 IDNA 메커니즘에 따라 입력 문자열의 ASCII 표현을 반환합니다. String
예시
사용 예시
SELECT idnaEncode('straße.münchen.de')
┌─idnaEncode('straße.münchen.de')─────┐
│ xn--strae-oqa.xn--mnchen-3ya.de │
└─────────────────────────────────────┘
도입 버전: v23.7.0
각 단어의 첫 글자를 대문자로, 나머지 글자는 소문자로 변환합니다.
단어는 영숫자가 아닌 문자로 구분된 영숫자 문자 시퀀스입니다.
initcap는 각 단어의 첫 글자만 대문자로 변환하므로 아포스트로피나 대문자가 포함된 단어에서는 예상하지 못한 동작이 발생할 수 있습니다.
이는 알려진 동작이며 현재로서는 수정할 계획이 없습니다.
구문
인수
반환 값
각 단어의 첫 글자를 대문자로 변환한 s를 반환합니다. String
예시
사용 예시
SELECT initcap('building for fast')
┌─initcap('building for fast')─┐
│ Building For Fast │
└──────────────────────────────┘
아포스트로피 또는 대문자가 포함된 단어의 알려진 동작 예시
SELECT initcap('John''s cat won''t eat.');
┌─initcap('Joh⋯n\'t eat.')─┐
│ John'S Cat Won'T Eat. │
└──────────────────────────┘
도입 버전: v23.7.0
initcap와 마찬가지로 initcapUTF8은 각 단어의 첫 글자를 대문자로, 나머지 글자를 소문자로 변환합니다.
문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
이 함수는 언어를 감지하지 않습니다. 예를 들어 터키어에서는 결과가 완전히 정확하지 않을 수 있습니다(i/İ 대 i/I).
코드 포인트의 대문자와 소문자에서 UTF-8 바이트 시퀀스 길이가 서로 다르면 해당 코드 포인트의 결과가 올바르지 않을 수 있습니다.
구문
인수
반환 값
각 단어의 첫 글자를 대문자로 변환한 s를 반환합니다. String
예시
사용 예시
SELECT initcapUTF8('не тормозит')
┌─initcapUTF8('не тормозит')─┐
│ Не Тормозит │
└────────────────────────────┘
도입 버전: v25.9.0
입력 String 또는 FixedString이 ASCII 바이트(0x00–0x7F)만 포함하면 1을, 그렇지 않으면 0을 반환합니다. 입력이 유효한 ASCII인 경우에 최적화되어 있습니다.
구문
별칭: isASCII
인수
반환 값
예시
isValidASCII
SELECT isValidASCII('hello') AS is_ascii, isValidASCII('你好') AS is_not_ascii
도입 버전: v20.1.0
바이트 집합이 올바른 UTF-8 인코딩 텍스트인지 확인합니다.
구문
인수
s — UTF-8로 인코딩된 문자열이 유효한지 검사할 문자열입니다. String
반환 값
바이트 집합이 유효한 UTF-8 인코딩 텍스트를 구성하면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT isValidUTF8('\\xc3\\xb1') AS valid, isValidUTF8('\\xc3\\x28') AS invalid
┌─valid─┬─invalid─┐
│ 1 │ 0 │
└───────┴─────────┘
도입 버전: v24.1.0
두 바이트 문자열 사이의 Jaro 유사도를 계산합니다.
구문
인수
반환 값
두 문자열 사이의 Jaro 유사도를 반환합니다. Float64
예시
사용 예시
SELECT jaroSimilarity('clickhouse', 'click')
┌─jaroSimilarity('clickhouse', 'click')─┐
│ 0.8333333333333333 │
└───────────────────────────────────────┘
도입 버전: v24.1.0
두 바이트 문자열 간의 Jaro-Winkler 유사도를 계산합니다.
구문
jaroWinklerSimilarity(s1, s2)
인수
반환 값
두 문자열 사이의 Jaro-Winkler 유사도를 반환합니다. Float64
예시
사용 예시
SELECT jaroWinklerSimilarity('clickhouse', 'click')
┌─jaroWinklerSimilarity('clickhouse', 'click')─┐
│ 0.8999999999999999 │
└──────────────────────────────────────────────┘
도입 버전: v22.1.0
문자열 s에서 왼쪽부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다.
구문
인수
반환 값
다음을 반환합니다.
offset이 양수이면, 문자열의 왼쪽에서 시작하는 offset바이트 길이의 s 부분 문자열입니다.
offset이 음수이면, 문자열의 왼쪽에서 시작하는 length(s) - |offset|바이트 길이의 s 부분 문자열입니다.
length가 0이면 빈 문자열을 반환합니다.
String
예시
양수 오프셋
SELECT left('Hello World', 5)
음수 OFFSET
SELECT left('Hello World', -6)
도입 버전: v21.8.0
결과 문자열의 길이가 지정된 length에 도달할 때까지 문자열 왼쪽을 공백 또는 지정된 문자열로(필요한 경우 여러 번) 채웁니다.
구문
leftPad(string, length[, pad_string])
별칭: lpad
인수
string — 패딩할 입력 문자열입니다. String
length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
pad_string — 선택 사항입니다. 입력 문자열을 패딩하는 데 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 패딩됩니다. String
반환 값
지정한 길이가 되도록 왼쪽이 패딩된 문자열을 반환합니다. String
예시
사용 예시
SELECT leftPad('abc', 7, '*'), leftPad('def', 7)
┌─leftPad('abc', 7, '*')─┬─leftPad('def', 7)─┐
│ ****abc │ def │
└────────────────────────┴───────────────────┘
도입된 버전: v21.8.0
결과 문자열이 지정된 길이에 이를 때까지 UTF8 문자열의 왼쪽을 공백 또는 지정한 문자열로 채웁니다(필요한 경우 여러 번 반복).
문자열 길이를 바이트 단위로 측정하는 leftPad와 달리, 이 함수는 문자열 길이를 코드 포인트 단위로 측정합니다.
구문
leftPadUTF8(string, length[, pad_string])
인수
string — 패딩할 입력 문자열입니다. String
length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length자로 잘립니다. (U)Int*
pad_string — 선택 사항입니다. 입력 문자열을 채울 때 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 채워집니다. String
반환 값
지정된 길이가 되도록 왼쪽이 채워진 문자열을 반환합니다. String
예시
사용 예시
SELECT leftPadUTF8('абвг', 7, '*'), leftPadUTF8('дежз', 7)
┌─leftPadUTF8('абвг', 7, '*')─┬─leftPadUTF8('дежз', 7)─┐
│ ***абвг │ дежз │
└─────────────────────────────┴────────────────────────┘
도입 버전: v22.1.0
UTF-8로 인코딩된 문자열 s에서 왼쪽을 기준으로 지정된 offset부터 부분 문자열을 반환합니다.
구문
인수
반환 값
반환 값:
offset이 양수이면 문자열의 왼쪽부터 시작해 offset바이트인 s의 부분 문자열을 반환합니다.\n”
offset이 음수이면 문자열의 왼쪽부터 시작해 length(s) - |offset|바이트인 s의 부분 문자열을 반환합니다.\n”
length가 0이면 빈 문자열을 반환합니다.
String
예시
양수 offset
SELECT leftUTF8('Привет', 4)
음수 OFFSET
SELECT leftUTF8('Привет', -4)
도입 버전: v1.1.0
문자열의 길이를 바이트 수나 문자 수가 아닌 유니코드 코드 포인트 기준으로 반환합니다.
문자열에 유효한 UTF-8 인코딩 텍스트가 포함되어 있다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다.
구문
별칭: CHARACTER_LENGTH, CHAR_LENGTH
인수
s — 유효한 UTF-8로 인코딩된 텍스트를 포함하는 String. String
반환 값
문자열 s의 길이를 유니코드 코드 포인트 기준으로 반환합니다. UInt64
예시
사용 예시
SELECT lengthUTF8('Здравствуй, мир!')
┌─lengthUTF8('Здравствуй, мир!')─┐
│ 16 │
└────────────────────────────────┘
도입 버전: v1.1.0
ASCII 문자열을 소문자로 변환합니다.
구문
별칭: lcase
인수
반환 값
s를 소문자로 변환한 문자열을 반환합니다. String
예시
사용 예시
SELECT lower('CLICKHOUSE')
┌─lower('CLICKHOUSE')─┐
│ clickhouse │
└─────────────────────┘
도입 버전: v1.1.0
문자열이 유효한 UTF-8 인코딩 텍스트를 포함한다고 가정하고, 해당 문자열을 소문자로 변환합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
구문
인수
input — 소문자로 변환할 입력 문자열입니다. String
반환 값
소문자 문자열을 반환합니다. String
예시
첫 번째
SELECT lowerUTF8('München') as Lowerutf8;
도입 버전: v26.3.0
이 함수는 자연 정렬에 사용되는 함수입니다.
구문
별칭: NATURAL_SORT_KEY
인수
s — 자연 정렬 키 문자열로 변환할 문자열입니다. String
반환 값
s에서 생성된 자연 정렬 키 문자열을 반환합니다. String
예시
사용 예시
SELECT s FROM t ORDER BY naturalSortKey(s)
┌─s───┐
│ a1 │
| a02 │
└─────┘
도입 버전: v21.11.0
UTF-8 문자열을 NFC 정규화 형식에 따라 정규화합니다.
구문
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
UTF-8 문자열의 NFC 정규화된 형태를 반환합니다. String
예시
사용 예시
SELECT
'é' AS original, -- e + 결합 악센트 부호 (U+0065 + U+0301)
length(original),
normalizeUTF8NFC('é') AS nfc_normalized, -- é (U+00E9)
length(nfc_normalized);
┌─original─┬─length(original)─┬─nfc_normalized─┬─length(nfc_normalized)─┐
│ é │ 2 │ é │ 2 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘
도입 버전: v21.11.0
UTF-8 문자열을 NFD 정규화 형식에 따라 정규화합니다.
구문
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
UTF-8 문자열의 NFD로 정규화된 형태를 반환합니다. String
예시
사용 예시
SELECT
'é' AS original, -- é (U+00E9)
length(original),
normalizeUTF8NFD('é') AS nfd_normalized, -- e + 결합 악센트 (U+0065 + U+0301)
length(nfd_normalized);
┌─original─┬─length(original)─┬─nfd_normalized─┬─length(nfd_normalized)─┐
│ é │ 2 │ é │ 3 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘
도입 버전: v21.11.0
UTF-8 문자열을 NFKC 정규화 형식에 따라 정규화합니다.
구문
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
UTF-8 문자열을 NFKC로 정규화한 값을 반환합니다. String
예시
사용 예시
SELECT
'① ② ③' AS original, -- 원형 숫자 문자
normalizeUTF8NFKC('① ② ③') AS nfkc_normalized; -- 1 2 3으로 변환
┌─original─┬─nfkc_normalized─┐
│ ① ② ③ │ 1 2 3 │
└──────────┴─────────────────┘
normalizeUTF8NFKCCasefold
도입 버전: v26.3.0
NFKC_Casefold normalization form에 따라 UTF-8 문자열을 정규화합니다. 이 정규화 형식은 먼저 NFKC 정규화를 적용한 뒤 case folding을 수행합니다.
식별자를 대소문자를 구분하지 않고 일치시킬 때 유용합니다.
구문
normalizeUTF8NFKCCasefold(str)
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
UTF-8 문자열의 NFKC_Casefold 정규화 형태를 반환합니다. String
예시
사용 예시
SELECT
'Ä ① Hello' AS original,
normalizeUTF8NFKCCasefold('Ä ① Hello') AS nfkc_cf_normalized;
┌─original───┬─nfkc_cf_normalized─┐
│ Ä ① Hello │ ä 1 hello │
└────────────┴────────────────────┘
도입 버전: v21.11.0
UTF-8 문자열을 NFKD 정규화 형식에 따라 정규화합니다.
구문
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
UTF-8 문자열의 NFKD 정규화된 형식을 반환합니다. String
예시
사용 예시
SELECT
'H₂O²' AS original, -- H + 아래 첨자 2 + O + 위 첨자 2
normalizeUTF8NFKD('H₂O²') AS nfkd_normalized; -- H 2 O 2로 변환
┌─original─┬─nfkd_normalized─┐
│ H₂O² │ H2O2 │
└──────────┴─────────────────┘
도입 버전: v24.1.0
Punycode로 인코딩된 문자열의 UTF-8로 인코딩된 일반 텍스트를 반환합니다.
유효한 Punycode 인코딩 문자열이 주어지지 않으면 예외가 발생합니다.
구문
인수
s — Punycode로 인코딩된 문자열입니다. String
반환 값
입력값의 평문을 반환합니다. String
예시
사용 예시
SELECT punycodeDecode('Mnchen-3ya')
┌─punycodeDecode('Mnchen-3ya')─┐
│ München │
└──────────────────────────────┘
도입 버전: v24.1.0
문자열의 Punycode 표현을 반환합니다.
문자열은 UTF8로 인코딩되어 있어야 하며, 그렇지 않으면 동작이 정의되지 않습니다.
구문
인수
반환 값
입력값의 Punycode 표현을 반환합니다. String
예시
사용 예시
SELECT punycodeEncode('München')
┌─punycodeEncode('München')─┐
│ Mnchen-3ya │
└───────────────────────────┘
도입 버전: v23.2.0
regexp 패턴과 일치하고 정규식 그룹 인덱스에 해당하는 haystack의 첫 번째 문자열을 추출합니다.
구문
regexpExtract(haystack, pattern[, index])
별칭: REGEXP_EXTRACT
인수
haystack — 정규식 패턴을 일치시킬 String입니다. String
pattern — String, 정규식 표현식입니다. pattern에는 여러 개의 정규식 그룹이 포함될 수 있으며, index는 추출할 정규식 그룹을 나타냅니다. 인덱스가 0이면 정규식 전체와 일치하는 값을 의미합니다. const String
index — 선택 사항입니다. 기본값은 1이며 0 이상인 정수입니다. 추출할 정규식 그룹을 나타냅니다. (U)Int*
반환 값
일치한 문자열을 반환합니다. String
예시
사용 예시
SELECT
regexpExtract('100-200', '(\\d+)-(\\d+)', 1),
regexpExtract('100-200', '(\\d+)-(\\d+)', 2),
regexpExtract('100-200', '(\\d+)-(\\d+)', 0),
regexpExtract('100-200', '(\\d+)-(\\d+)');
┌─regexpExtract('100-200', '(\\d+)-(\\d+)', 1)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 2)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)', 0)─┬─regexpExtract('100-200', '(\\d+)-(\\d+)')─┐
│ 100 │ 200 │ 100-200 │ 100 │
└──────────────────────────────────────────────┴──────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────────────┘
도입 버전: v26.5.0
바이트 위치 position에서 검색을 시작해, haystack에서 pattern이 occurrence번째로 일치하는 바이트 위치(1부터 시작)를 반환합니다.
return_option이 0(기본값)이면 일치 항목의 첫 번째 바이트 위치를 반환합니다. 1이면 일치 항목 직후 첫 번째 바이트의 위치를 반환합니다.
subexpression이 0보다 크면 전체 일치 항목이 아니라 해당 캡처 그룹의 위치를 반환합니다.
일치 항목을 찾지 못했거나 요청한 캡처 그룹이 일치에 포함되지 않은 경우 0을 반환합니다.
PostgreSQL의 regexp_instr와의 호환성을 위해 제공되며(해당 alias로도 노출됨), 위치는 바이트 기준이라는 점에 유의하십시오. 이는 다른 ClickHouse 정규식 함수와 일관되며 PostgreSQL의 regexp_instr는 문자 기준입니다.
구문
regexpPosition(haystack, pattern[, position[, occurrence[, return_option[, flags[, subexpression]]]]])
별칭: regexpInstr, regexp_instr
인수
haystack — 검색할 문자열입니다. String
pattern — 정규식 패턴입니다. const String
position — 선택 사항입니다. 검색을 시작할 1부터 시작하는 바이트 위치입니다. 기본값: 1. (U)Int*
occurrence — 선택 사항입니다. 반환할 일치 항목의 순서입니다. 기본값: 1. (U)Int*
return_option — 선택 사항입니다. 0은 일치 시작 위치를 반환하고, 1은 일치 바로 뒤의 위치를 반환합니다. 기본값: 0. (U)Int*
flags — 선택 사항입니다. 정규식 플래그입니다. 지원 항목: i (대소문자 구분 안 함), c (대소문자 구분), m/n (여러 줄 앵커), s (점이 줄바꿈과 일치). 기본값: 빈 문자열. const String
subexpression — 선택 사항입니다. 위치를 반환할 캡처 그룹의 인덱스입니다. 0은 전체 일치를 의미합니다. 기본값: 0. (U)Int*
반환 값
일치하는 항목의 바이트 위치를 반환하며, 찾지 못한 경우 0을 반환합니다. UInt64
예시
기본 사용법
SELECT
regexpPosition('hello world', 'world'),
regexpPosition('aXbXcXd', 'X', 1, 2),
regexpPosition('aXbXcXd', 'X', 1, 2, 1),
regexpPosition('Hello WORLD', 'world', 1, 1, 0, 'i'),
regexpPosition('foo123bar456', '([a-z]+)([0-9]+)', 1, 2, 0, '', 2);
┌─...─┬─...─┬─...─┬─...─┬─...─┐
│ 7 │ 4 │ 5 │ 7 │ 10 │
└─────┴─────┴─────┴─────┴─────┘
도입 버전: v26.3.0
UTF-8 문자열의 문자를 NFD로 분해한 뒤,
결합 마크(유니코드 범주 Mn)를 제거하고 NFC로 다시 조합하여 발음 구별 기호(악센트)를 제거합니다.
구문
removeDiacriticsUTF8(str)
별칭: removeAccentsUTF8
인수
str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값
발음 구별 부호가 제거된 UTF-8 문자열입니다. String
예시
기본 발음 구별 부호 제거
SELECT removeDiacriticsUTF8('café résumé naïve')
┌─removeDiacriticsUTF8('café résumé naïve')─┐
│ cafe resume naive │
└────────────────────────────────────────────┘
도입 버전: v20.1.0
문자열을 지정한 횟수만큼 반복하여 이어 붙입니다.
구문
인수
반환 값
문자열 s를 n회 반복한 문자열입니다. n이 음수이면 빈 문자열을 반환합니다. String
예시
사용 예시
┌─repeat('abc', 10)──────────────┐
│ abcabcabcabcabcabcabcabcabcabc │
└────────────────────────────────┘
도입 버전: v1.1.0
문자열에서 유니코드 코드 포인트의 순서를 반대로 바꿉니다.
문자열에 유효한 UTF-8 인코딩 텍스트가 들어 있다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
구문
인수
s — 유효한 UTF-8 인코딩 텍스트를 포함하는 String입니다. String
반환 값
유니코드 코드 포인트 시퀀스를 역순으로 뒤집은 문자열을 반환합니다. String
예시
사용 예시
SELECT reverseUTF8('ClickHouse')
도입 버전: v22.1.0
문자열 s의 오른쪽부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다.
구문
인수
반환 값
다음을 반환합니다:
offset이 양수이면 문자열의 오른쪽에서 시작해 offset바이트 길이의 s 부분 문자열을 반환합니다.
offset이 음수이면 문자열의 오른쪽에서 시작해 length(s) - |offset|바이트 길이의 s 부분 문자열을 반환합니다.
length가 0이면 빈 문자열을 반환합니다.
String
예시
양수 offset
음수 오프셋
SELECT right('Hello', -3)
도입 버전: v21.8.0
결과 문자열의 길이가 지정된 length에 도달할 때까지 문자열 오른쪽을 공백 또는 지정된 문자열로(필요한 경우 여러 번) 채웁니다.
구문
rightPad(string, length[, pad_string])
별칭: rpad
인수
string — 패딩할 입력 문자열입니다. String
length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
pad_string — 선택 사항입니다. 입력 문자열을 채우는 데 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 채워집니다. String
반환 값
지정된 길이가 되도록 오른쪽이 채워진 문자열을 반환합니다. String
예시
사용 예시
SELECT rightPad('abc', 7, '*'), rightPad('abc', 7)
┌─rightPad('abc', 7, '*')─┬─rightPad('abc', 7)─┐
│ abc**** │ abc │
└─────────────────────────┴────────────────────┘
도입 버전: v21.8.0
결과 문자열이 지정된 길이에 도달할 때까지 문자열의 오른쪽을 공백이나 지정된 문자열로 채웁니다(필요한 경우 여러 번 반복).
문자열 길이를 바이트 단위로 측정하는 rightPad와 달리, 이 함수는 문자열 길이를 코드 포인트 단위로 측정합니다.
구문
rightPadUTF8(string, length[, pad_string])
인수
string — 패딩할 입력 문자열입니다. String
length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
pad_string — 선택 사항입니다. 입력 문자열을 패딩할 때 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 패딩됩니다. String
반환 값
지정된 길이가 되도록 오른쪽에 패딩된 문자열을 반환합니다. String
예시
사용 예시
SELECT rightPadUTF8('абвг', 7, '*'), rightPadUTF8('абвг', 7)
┌─rightPadUTF8('абвг', 7, '*')─┬─rightPadUTF8('абвг', 7)─┐
│ абвг*** │ абвг │
└──────────────────────────────┴─────────────────────────┘
도입 버전: v22.1.0
UTF-8로 인코딩된 문자열 s의 오른쪽에서부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다.
구문
인수
반환 값
다음을 반환합니다.
offset이 양수이면, 문자열의 오른쪽에서 시작해 offset바이트 길이의 s 부분 문자열을 반환합니다.
offset이 음수이면, 문자열의 오른쪽에서 시작해 length(s) - |offset|바이트 길이의 s 부분 문자열을 반환합니다.
length가 0이면 빈 문자열을 반환합니다.
String
예시
양수 오프셋
SELECT rightUTF8('Привет', 4)
음수 오프셋
SELECT rightUTF8('Привет', -4)
도입 버전: v23.4.0
문자열의 Soundex 코드를 반환합니다.
구문
인수
반환 값
입력 문자열의 Soundex 코드를 반환합니다. String
예시
사용 예시
┌─soundex('aksel')─┐
│ A240 │
└──────────────────┘
도입 버전: v23.5.0
공백( )을 지정한 횟수만큼 반복해 연결합니다.
구문
인수
반환 값
공백이 n번 반복된 문자열을 반환합니다. n <= 0이면 빈 문자열을 반환합니다. String
예시
사용 예시
SELECT space(3) AS res, length(res);
┌─res─┬─length(res)─┐
│ │ 3 │
└─────┴─────────────┘
도입 버전: v25.5.0
주어진 문자열에서 길이가 최소 n인 모든 부분 문자열을 찾습니다.
이때 부분 문자열의 양쪽 경계에 있는 (n-1)-gram의 해시는
부분 문자열 내부의 어떤 (n-1)-gram의 해시보다도 반드시 커야 합니다.
해시 함수로 CRC32를 사용합니다.
구문
sparseGrams(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])
인수
s — 입력 문자열입니다. String
min_ngram_length — 선택 사항입니다. 추출할 n-그램의 최소 길이입니다. 기본값이자 최소값은 3입니다. UInt*
max_ngram_length — 선택 사항입니다. 추출할 n-그램의 최대 길이입니다. 기본값은 100입니다. min_ngram_length보다 작으면 안 됩니다. UInt*
min_cutoff_length — 선택 사항입니다. 지정하면 길이가 min_cutoff_length 이상인 n-그램만 반환됩니다. 기본값은 min_ngram_length와 같습니다. min_ngram_length보다 작으면 안 되며 max_ngram_length보다 크면 안 됩니다. UInt*
반환 값
선택된 부분 문자열의 배열을 반환합니다. Array(String)
예시
사용 예시
SELECT sparseGrams('alice', 3)
┌─sparseGrams('alice', 3)────────────┐
│ ['ali','lic','lice','ice'] │
└────────────────────────────────────┘
도입 버전: v25.5.0
주어진 문자열에서 길이가 최소 n인 모든 부분 문자열의 해시를 찾습니다.
이때 부분 문자열 경계에 있는 (n-1)-gram의 해시는
부분 문자열 내부의 어떤 (n-1)-gram의 해시보다도 반드시 커야 합니다.
해시 함수로 CRC32를 사용합니다.
구문
sparseGramsHashes(s[, min_ngram_length, max_ngram_length])
인수
s — 입력 문자열입니다. String
min_ngram_length — 선택 사항입니다. 추출할 n-그램의 최소 길이입니다. 기본값이자 최솟값은 3입니다. UInt*
max_ngram_length — 선택 사항입니다. 추출할 n-그램의 최대 길이입니다. 기본값은 100입니다. min_ngram_length보다 작아서는 안 됩니다. UInt*
min_cutoff_length — 선택 사항입니다. 지정하면 길이가 min_cutoff_length 이상인 n-그램만 반환됩니다. 기본값은 min_ngram_length와 같습니다. min_ngram_length보다 작아서는 안 되며 max_ngram_length보다 커서도 안 됩니다. UInt*
반환 값
선택된 부분 문자열의 CRC32 해시로 구성된 배열을 반환합니다. Array(UInt32)
예시
사용 예시
SELECT sparseGramsHashes('alice', 3)
┌─sparseGramsHashes('alice', 3)──────────────────────┐
│ [1481062250,2450405249,4012725991,1918774096] │
└────────────────────────────────────────────────────┘
도입 버전: v25.5.0
주어진 UTF-8 문자열에서 길이가 최소 n인 모든 부분 문자열의 해시를 찾습니다. 이때 부분 문자열 경계에 있는 (n-1)-gram의 해시는 부분 문자열 내부의 어떤 (n-1)-gram의 해시보다도 반드시 커야 합니다.
UTF-8 문자열을 입력으로 받으며, UTF-8 시퀀스가 올바르지 않으면 예외를 발생시킵니다.
해시 함수로 CRC32를 사용합니다.
구문
sparseGramsHashesUTF8(s[, min_ngram_length, max_ngram_length])
인수
s — 입력 문자열입니다. String
min_ngram_length — 선택 사항입니다. 추출할 n-그램의 최소 길이입니다. 기본값이자 최소값은 3입니다. UInt*
max_ngram_length — 선택 사항입니다. 추출할 n-그램의 최대 길이입니다. 기본값은 100입니다. min_ngram_length보다 작아서는 안 됩니다. UInt*
min_cutoff_length — 선택 사항입니다. 지정하면 길이가 min_cutoff_length 이상인 n-그램만 반환됩니다. 기본값은 min_ngram_length와 같습니다. min_ngram_length보다 작아서는 안 되며 max_ngram_length보다 커서도 안 됩니다. UInt*
반환 값
선택된 UTF-8 부분 문자열의 CRC32 해시로 이루어진 배열을 반환합니다. Array(UInt32)
예시
사용 예시
SELECT sparseGramsHashesUTF8('алиса', 3)
┌─sparseGramsHashesUTF8('алиса', 3)─┐
│ [4178533925,3855635300,561830861] │
└───────────────────────────────────┘
도입 버전: v25.5.0
지정된 UTF-8 문자열에서 길이가 최소 n인 모든 부분 문자열을 찾습니다. 이때 부분 문자열의 경계에 있는 (n-1)-gram의 해시 값은 부분 문자열 내부의 어떤 (n-1)-gram의 해시보다 반드시 커야 합니다.
입력으로 UTF-8 문자열을 받으며, UTF-8 시퀀스가 잘못된 경우 예외를 발생시킵니다.
해시 함수로 CRC32를 사용합니다.
구문
sparseGramsUTF8(s[, min_ngram_length[, max_ngram_length[, min_cutoff_length]]])
인수
s — 입력 문자열입니다. String
min_ngram_length — 선택 사항입니다. 추출할 n-그램의 최소 길이입니다. 기본값이자 최소값은 3입니다. UInt*
max_ngram_length — 선택 사항입니다. 추출할 n-그램의 최대 길이입니다. 기본값은 100입니다. min_ngram_length보다 작아서는 안 됩니다. UInt*
min_cutoff_length — 선택 사항입니다. 지정하면 길이가 min_cutoff_length 이상인 n-그램만 반환됩니다. 기본값은 min_ngram_length와 같습니다. min_ngram_length보다 작아서는 안 되며 max_ngram_length보다 커서도 안 됩니다. UInt*
반환 값
선택된 UTF-8 부분 문자열의 배열을 반환합니다. Array(String)
예시
사용 예시
SELECT sparseGramsUTF8('алиса', 3)
┌─sparseGramsUTF8('алиса', 3)─┐
│ ['али','лис','иса'] │
└─────────────────────────────┘
도입 버전: v1.1.0
문자열이 지정된 문자열로 시작하는지 확인합니다.
구문
인수
반환 값
s가 prefix로 시작하면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT startsWith('ClickHouse', 'Click');
┌─startsWith('⋯', 'Click')─┐
│ 1 │
└──────────────────────────┘
startsWithCaseInsensitive
도입 버전: v25.10.0
문자열이 지정된 문자열로 시작하는지 여부를 대소문자를 구분하지 않고 확인합니다.
구문
startsWithCaseInsensitive(s, prefix)
인수
s — 확인할 문자열입니다. String
prefix — 확인할 대소문자를 구분하지 않는 접두사입니다. String
반환 값
s가 대소문자를 구분하지 않는 prefix로 시작하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT startsWithCaseInsensitive('ClickHouse', 'CLICK');
┌─startsWithCaseInsensitive('⋯', 'CLICK')─┐
│ 1 │
└─────────────────────────────────────────┘
startsWithCaseInsensitiveUTF8
도입 버전: v25.10.0
문자열이 지정된 대소문자를 구분하지 않는 접두사로 시작하는지 확인합니다.
문자열에 유효한 UTF-8 인코딩 텍스트가 포함되어 있다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
구문
startsWithCaseInsensitiveUTF8(s, prefix)
인수
s — 확인할 문자열입니다. String
prefix — 대소문자를 구분하지 않는 확인할 접두사입니다. String
반환 값
s가 대소문자를 구분하지 않는 prefix로 시작하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT startsWithCaseInsensitiveUTF8('приставка', 'при')
┌─startsWithUT⋯ка', 'при')─┐
│ 1 │
└──────────────────────────┘
도입 버전: v23.8.0
문자열이 지정된 prefix로 시작하는지 확인합니다.
문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정합니다.
이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
구문
startsWithUTF8(s, prefix)
인수
반환 값
s가 prefix로 시작하면 1을, 그렇지 않으면 0을 반환합니다. UInt8
예시
사용 예시
SELECT startsWithUTF8('приставка', 'при')
┌─startsWithUT⋯ка', 'при')─┐
│ 1 │
└──────────────────────────┘
도입 버전: v25.6.0
문자열의 바이트 분포에 대한 샤논 엔트로피를 계산합니다.
구문
인수
반환 값
문자열 내 바이트 분포의 샤논 엔트로피를 반환합니다. Float64
예시
사용 예시
SELECT stringBytesEntropy('Hello, world!')
┌─stringBytesEntropy('Hello, world!')─┐
│ 3.07049960 │
└─────────────────────────────────────┘
도입 버전: v25.6.0
문자열에 포함된 고유 바이트 수를 계산합니다.
구문
인수
반환 값
문자열에서 서로 다른 바이트의 개수를 반환합니다. UInt16
예시
사용 예시
SELECT stringBytesUniq('Hello')
┌─stringBytesUniq('Hello')─┐
│ 4 │
└──────────────────────────┘
도입 버전: v23.11.0
두 바이트 문자열 사이의 자카드 유사도 지수를 계산합니다.
구문
stringJaccardIndex(s1, s2)
인수
반환 값
두 문자열 사이의 Jaccard 유사도 지수를 반환합니다. Float64
예시
사용 예시
SELECT stringJaccardIndex('clickhouse', 'mouse')
┌─stringJaccardIndex('clickhouse', 'mouse')─┐
│ 0.4 │
└───────────────────────────────────────────┘
도입 버전: v23.11.0
UTF8로 인코딩된 문자열용 stringJaccardIndex입니다.
구문
stringJaccardIndexUTF8(s1, s2)
인수
s1 — 첫 번째 UTF8 입력 문자열입니다. String
s2 — 두 번째 UTF8 입력 문자열입니다. String
반환 값
두 UTF8 문자열 사이의 자카드 유사도 지수를 반환합니다. Float64
예시
사용 예시
SELECT stringJaccardIndexUTF8('我爱你', '我也爱你')
┌─stringJaccardIndexUTF8('我爱你', '我也爱你')─┐
│ 0.75 │
└─────────────────────────────────────────────┘
도입 버전: v1.1.0
지정된 바이트 인덱스 offset에서 시작하는 문자열 s의 부분 문자열을 반환합니다.
바이트 수는 다음 규칙에 따라 1부터 계산됩니다.
offset이 0이면 빈 문자열이 반환됩니다.
offset이 음수이면 부분 문자열은 문자열의 시작이 아니라 끝에서 offset 문자만큼 떨어진 위치에서 시작합니다.
선택적 인수 length는 반환되는 부분 문자열이 가질 수 있는 최대 바이트 수를 지정합니다.
구문
substring(s, offset[, length])
별칭: byteSlice, mid, substr
인수
반환 값
인덱스 offset에서 시작하는 s의 부분 문자열을 length바이트 길이로 반환합니다. String
예시
기본 사용법
SELECT 'database' AS db, substr(db, 5), substr(db, 5, 1)
┌─db───────┬─substring('database', 5)─┬─substring('database', 5, 1)─┐
│ database │ base │ b │
└──────────┴──────────────────────────┴─────────────────────────────┘
도입 버전: v23.7.0
Spark 또는 MySQL과 마찬가지로, 구분자 delim이 count번 나타나기 전까지의 s 부분 문자열을 반환합니다.
구문
substringIndex(s, delim, count)
별칭: SUBSTRING_INDEX
인수
s — 부분 문자열을 추출할 문자열입니다. String
delim — 분리 기준이 되는 문자입니다. String
count — 부분 문자열을 추출하기 전에 셀 구분자의 출현 횟수입니다. count가 양수이면 마지막 구분자의 왼쪽에 있는 모든 내용(왼쪽부터 셈)이 반환됩니다. count가 음수이면 마지막 구분자의 오른쪽에 있는 모든 내용(오른쪽부터 셈)이 반환됩니다. UInt 또는 Int
반환 값
s에서 delim이 count번 나타나기 전까지의 부분 문자열을 반환합니다. String
예시
사용 예시
SELECT substringIndex('www.clickhouse.com', '.', 2)
┌─substringIndex('www.clickhouse.com', '.', 2)─┐
│ www.clickhouse │
└──────────────────────────────────────────────┘
도입 버전: v23.7.0
유니코드 코드 포인트를 기준으로, delim 구분자가 count번 나타나기 전까지의 s 부분 문자열을 반환합니다.
문자열에 유효한 UTF-8로 인코딩된 텍스트가 들어 있다고 가정합니다.
이 가정이 깨져도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
구문
substringIndexUTF8(s, delim, count)
인수
s — 부분 문자열을 추출할 문자열입니다. String
delim — 분리 기준이 되는 문자입니다. String
count — 부분 문자열을 추출하기 전에 셀 구분자의 출현 횟수입니다. count가 양수이면 마지막 구분자(왼쪽부터 계산)의 왼쪽에 있는 모든 내용이 반환됩니다. count가 음수이면 마지막 구분자(오른쪽부터 계산)의 오른쪽에 있는 모든 내용이 반환됩니다. UInt 또는 Int
반환 값
s에서 delim이 count번 나타나기 전까지의 부분 문자열을 반환합니다. String
예시
UTF8 예시
SELECT substringIndexUTF8('www.straßen-in-europa.de', '.', 2)
도입 버전: v1.1.0
지정된 코드 포인트 인덱스 offset에서 시작하는 문자열 s의 부분 문자열을 반환합니다.
코드 포인트는 다음 규칙에 따라 1부터 계산합니다.
offset이 0이면 빈 문자열을 반환합니다.
offset이 음수이면 부분 문자열은 문자열의 시작이 아니라 끝에서부터 offset 코드 포인트 떨어진 위치에서 시작합니다.
선택적 인수 length는 반환되는 부분 문자열의 최대 코드 포인트 수를 지정합니다.
이 함수는 문자열에 유효한 UTF-8로 인코딩된 텍스트가 들어 있다고 가정합니다.
이 가정이 충족되지 않아도 예외가 발생하지 않으며 결과는 정의되지 않습니다.
구문
substringUTF8(s, offset[, length])
인수
반환 값
코드 포인트 인덱스 offset에서 시작하는, length개의 코드 포인트 길이를 갖는 s의 부분 문자열을 반환합니다. String
예시
사용 예시
SELECT 'Täglich grüßt das Murmeltier.' AS str, substringUTF8(str, 9), substringUTF8(str, 9, 5)
Täglich grüßt das Murmeltier. grüßt das Murmeltier. grüßt
도입 버전: v20.1.0
유효하지 않은 UTF-8 문자를 대체 문자 �(U+FFFD)로 바꾸어 문자열을 올바른 UTF-8 인코딩으로 변환합니다.
유효하지 않은 문자가 여러 개 연속으로 발견되면 하나의 대체 문자로 합쳐집니다.
구문
인수
s — String 데이터 타입 객체로 표현된 임의의 바이트 시퀀스입니다. String
반환 값
유효한 UTF-8 문자열을 반환합니다. String
예시
사용 예시
SELECT toValidUTF8('\\x61\\xF0\\x80\\x80\\x80b')
c
┌─toValidUTF8('a����b')─┐
│ a�b │
└───────────────────────┘
도입 버전: v20.1.0
문자열의 앞부분과 뒷부분에서 지정된 문자를 제거합니다.
기본적으로 일반적인 공백(ASCII) 문자를 제거합니다.
구문
trimBoth(s[, trim_characters])
별칭: trim
인수
s — 양끝 문자를 제거할 String입니다. String
trim_characters — 선택 사항입니다. 제거할 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값
양쪽 끝에서 지정된 문자가 제거된 문자열을 반환합니다. String
예시
사용 예시
SELECT trimBoth('$$ClickHouse$$', '$')
┌─trimBoth('$$⋯se$$', '$')─┐
│ ClickHouse │
└──────────────────────────┘
도입 버전: v20.1.0
문자열의 시작 부분에서 지정된 문자를 제거합니다.
기본적으로는 일반적인 공백(ASCII) 문자를 제거합니다.
구문
trimLeft(input[, trim_characters])
별칭: ltrim
인수
input — 트리밍할 문자열입니다. String
trim_characters — 선택 사항입니다. 트리밍할 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값
왼쪽에서 지정된 문자가 제거된 문자열을 반환합니다. String
예시
사용 예시
SELECT trimLeft('ClickHouse', 'Click');
┌─trimLeft('Cl⋯', 'Click')─┐
│ House │
└──────────────────────────┘
도입 버전: v20.1.0
문자열의 끝에서 지정된 문자를 제거합니다.
기본적으로 일반적인 ASCII 공백 문자를 제거합니다.
구문
trimRight(s[, trim_characters])
별칭: rtrim
인수
s — 잘라낼 문자열입니다. String
trim_characters — 선택적으로 잘라낼 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값
오른쪽 끝에서 지정된 문자가 제거된 문자열을 반환합니다. String
예시
사용 예시
SELECT trimRight('ClickHouse','House');
┌─trimRight('C⋯', 'House')─┐
│ Click │
└──────────────────────────┘
도입 버전: v25.6.0
문자열을 받아 Base32 인코딩 방식으로 디코딩합니다.
구문
인수
encoded — 디코드할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base32 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값
인수의 디코드된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT tryBase32Decode('IVXGG33EMVSA====');
┌─tryBase32Decode('IVXGG33EMVSA====')─┐
│ Encoded │
└─────────────────────────────────────┘
도입 버전: v22.10.0
base58Decode와 유사하지만, 오류가 발생하면 빈 문자열을 반환합니다.
구문
tryBase58Decode(encoded[, expected_size])
인수
encoded — String 컬럼 또는 상수입니다. 문자열이 유효한 Base58 인코딩이 아니면, 오류 발생 시 빈 문자열을 반환합니다. String
expected_size — 선택 사항입니다. 바이트 단위의 예상 디코딩 크기입니다. 32 또는 64이면 최적화된 디코더를 사용하고, 그 밖의 값이면 일반 디코더를 사용합니다. UInt8, UInt16, UInt32, or UInt64
반환 값
인수의 디코딩된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT tryBase58Decode('3dc8KtHrwM') AS res, tryBase58Decode('invalid') AS res_invalid;
┌─res─────┬─res_invalid─┐
│ Encoded │ │
└─────────┴─────────────┘
도입 버전: v18.16.0
base64Decode와 유사하지만, 오류가 발생한 경우 빈 문자열을 반환합니다.
구문
인수
encoded — 디코딩할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base64 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값
인수에서 디코딩된 값을 포함하는 문자열을 반환합니다. String
예시
사용 예시
SELECT tryBase64Decode('Y2xpY2tob3VzZQ==')
┌─tryBase64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse │
└─────────────────────────────────────┘
도입 버전: v18.16.0
base64URLDecode와 동일하지만, 오류가 발생한 경우에는 빈 문자열을 반환합니다.
구문
tryBase64URLDecode(encoded)
인수
encoded — 디코딩할 String 타입의 컬럼 또는 상수입니다. 문자열이 유효한 Base64 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값
인수에서 디코딩된 값을 담은 문자열을 반환합니다. String
예시
사용 예시
SELECT tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
┌─tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com │
└──────────────────────────────────────────────────────┘
도입 버전: v24.1.0
Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 유니코드(UTF-8) 표현인 ToUnicode 알고리즘 결과를 반환합니다.
오류가 발생하면 예외를 발생시키는 대신 빈 문자열을 반환합니다.
구문
인수
반환 값
입력 값의 IDNA 메커니즘에 따라 입력 문자열을 ASCII로 표현한 값을 반환합니다. 입력이 올바르지 않으면 빈 문자열을 반환합니다. String
예시
사용 예시
SELECT tryIdnaEncode('straße.münchen.de')
┌─tryIdnaEncode('straße.münchen.de')──┐
│ xn--strae-oqa.xn--mnchen-3ya.de │
└─────────────────────────────────────┘
도입 버전: v24.1.0
punycodeDecode와 유사하지만, 유효한 Punycode 인코딩 문자열이 제공되지 않으면 빈 문자열을 반환합니다.
구문
인수
s — Punycode로 인코딩된 문자열입니다. String
반환 값
입력 값의 평문을 반환하며, 입력이 유효하지 않으면 빈 문자열을 반환합니다. String
예시
사용 예시
SELECT tryPunycodeDecode('Mnchen-3ya')
┌─tryPunycodeDecode('Mnchen-3ya')─┐
│ München │
└─────────────────────────────────┘
도입 버전: v1.1.0
문자열에 포함된 ASCII 라틴 문자를 대문자로 변환합니다.
구문
별칭: ucase
인수
반환 값
s를 모두 대문자로 변환한 문자열을 반환합니다. String
예시
사용 예시
SELECT upper('clickhouse')
┌─upper('clickhouse')─┐
│ CLICKHOUSE │
└─────────────────────┘
도입 버전: v1.1.0
문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정하고 문자열을 대문자로 변환합니다.
이 가정이 성립하지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다.
이 함수는 언어를 감지하지 않습니다. 예를 들어 터키어에서는 결과가 정확히 올바르지 않을 수 있습니다(i/İ 대 i/I).
코드 포인트의 대문자와 소문자에서 UTF-8 바이트 시퀀스의 길이가 다른 경우(ẞ 및 ß 등), 해당 코드 포인트에 대한 결과가 올바르지 않을 수 있습니다.
구문
인수
반환 값
String 데이터 타입의 값입니다. String
예시
사용 예시
SELECT upperUTF8('München') AS Upperutf8
┌─Upperutf8─┐
│ MÜNCHEN │
└───────────┘