메인 콘텐츠로 건너뛰기
문자열을 검색하는 함수와 문자열을 치환하는 함수는 별도로 설명합니다.
아래 문서는 system.functions 시스템 테이블에서 생성되었습니다.

CRC32

도입 버전: v20.1.0 CRC-32-IEEE 802.3 다항식과 초기값 0xffffffff(zlib 구현)를 사용해 문자열의 CRC32 체크섬을 계산합니다. 구문
CRC32(s)
인수
  • s — CRC32를 계산할 대상 문자열입니다. String
반환 값 문자열의 CRC32 체크섬을 반환합니다. UInt32 예시 사용 예시
Query
SELECT CRC32('ClickHouse')
Response
┌─CRC32('ClickHouse')─┐
│          1538217360 │
└─────────────────────┘

CRC32IEEE

도입 버전: v20.1.0 CRC-32-IEEE 802.3 다항식을 사용해 문자열의 CRC32 체크섬을 계산합니다. 구문
CRC32IEEE(s)
인수
  • s — CRC32를 계산할 대상 문자열입니다. String
반환 값 문자열의 CRC32 체크섬을 반환합니다. UInt32 예시 사용 예시
Query
SELECT CRC32IEEE('ClickHouse');
Response
┌─CRC32IEEE('ClickHouse')─┐
│              3089448422 │
└─────────────────────────┘

CRC64

도입 버전: v20.1.0 CRC-64-ECMA 다항식을 사용해 문자열의 CRC64 체크섬을 계산합니다. 구문
CRC64(s)
인수
  • s — CRC64를 계산할 대상 문자열입니다. String
반환 값 문자열의 CRC64 체크섬을 반환합니다. UInt64 예시 사용 예시
Query
SELECT CRC64('ClickHouse');
Response
┌──CRC64('ClickHouse')─┐
│ 12126588151325169346 │
└──────────────────────┘

appendTrailingCharIfAbsent

도입 버전: v1.1.0 s가 비어 있지 않고 문자 c로 끝나지 않으면 문자열 s의 끝에 문자 c를 추가합니다. 구문
appendTrailingCharIfAbsent(s, c)
인수
  • s — 입력 문자열입니다. String
  • c — 없으면 덧붙일 문자입니다. String
반환 값 문자열 sc로 끝나지 않으면 끝에 문자 c를 덧붙인 문자열 s를 반환합니다. String 예시 사용 예시
Query
SELECT appendTrailingCharIfAbsent('https://example.com', '/');
Response
┌─appendTraili⋯.com', '/')─┐
│ https://example.com/     │
└──────────────────────────┘

ascii

도입 버전: v22.11.0 문자열 s의 첫 번째 문자의 ASCII 코드 포인트를 Int32로 반환합니다. 구문
ascii(s)
인수
  • sString 입력값입니다. String
반환 값 첫 번째 문자의 ASCII 코드 포인트를 반환합니다. s가 비어 있으면 결과는 0입니다. 첫 번째 문자가 ASCII 문자가 아니거나 UTF-16의 Latin-1 Supplement 범위에 속하지 않으면 결과는 정의되지 않습니다. Int32 예시 사용 예시
Query
SELECT ascii('234')
Response
┌─ascii('234')─┐
│           50 │
└──────────────┘

base32Decode

도입 버전: v25.6.0 Base32 (RFC 4648) 문자열을 디코딩합니다. 문자열이 올바른 Base32 인코딩 형식이 아니면 예외가 발생합니다. 구문
base32Decode(encoded)
인수
  • encodedString 컬럼 또는 상수. String
반환 값 인수를 디코딩한 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base32Decode('IVXGG33EMVSA====');
Response
┌─base32Decode('IVXGG33EMVSA====')─┐
│ Encoded                          │
└──────────────────────────────────┘

base32Encode

도입 버전: v25.6.0 문자열을 Base32로 인코딩합니다. 구문
base32Encode(plaintext)
인수
  • plaintext — 인코딩할 평문입니다. String
반환 값 인수의 인코딩된 값을 담은 문자열을 반환합니다. String 또는 FixedString 예시 사용 예시
Query
SELECT base32Encode('Encoded')
Response
┌─base32Encode('Encoded')─┐
│ IVXGG33EMVSA====        │
└─────────────────────────┘

base58Decode

도입 버전: v22.7.0 Base58 문자열을 디코딩합니다. 문자열이 유효한 Base58 인코딩 형식이 아니면 예외가 발생합니다. 선택 사항인 두 번째 인수 expected_size를 지정하면 최적화된 고정 크기 디코더를 사용할 수 있습니다. 현재 지원되는 값은 32와 64입니다. 그 밖의 값에는 범용 디코더가 사용됩니다. 최적화된 디코더를 선택했지만 입력을 정확히 해당 바이트 수로 디코딩할 수 없는 경우, 함수는 예외를 발생시킵니다(tryBase58Decode는 빈 문자열을 반환). 구문
base58Decode(encoded[, expected_size])
인수
  • encoded — 디코딩할 String 타입의 컬럼 또는 상수입니다. String
  • expected_size — 선택 사항입니다. 디코딩 후 예상 크기(바이트 단위)입니다. 값이 32 또는 64이면 최적화된 디코더를 사용하고, 그 외의 값이면 일반 디코더를 사용합니다. UInt8, UInt16, UInt32, or UInt64
반환 값 인수의 디코딩된 값을 포함하는 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base58Decode('JxF12TrwUP45BMd');
Response
┌─base58Decode⋯rwUP45BMd')─┐
│ Hello World              │
└──────────────────────────┘

base58Encode

도입 버전: v22.7.0 문자열을 Base58 방식으로 인코딩합니다. 구문
base58Encode(plaintext)
인수
  • plaintext — 인코딩할 평문입니다. String
반환 값 인수의 인코딩 결과를 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base58Encode('ClickHouse');
Response
┌─base58Encode('ClickHouse')─┐
│ 4nhk8K7GHXf6zx             │
└────────────────────────────┘

base64Decode

도입 버전: v18.16.0 RFC 4648에 따라 Base64 형식의 문자열을 디코딩합니다. 오류가 발생할 경우 예외를 발생시킵니다. 구문
base64Decode(encoded)
별칭: FROM_BASE64 인수
  • encoded — 디코딩할 String 컬럼 또는 상수입니다. 문자열이 올바른 Base64 인코딩 형식이 아니면 예외가 발생합니다. String
반환 값 디코딩된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base64Decode('Y2xpY2tob3VzZQ==')
Response
┌─base64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse                       │
└──────────────────────────────────┘

base64Encode

도입 버전: v18.16.0 RFC 4648에 따라 문자열을 Base64 형식으로 인코딩합니다. 구문
base64Encode(plaintext)
별칭: TO_BASE64 인수
  • plaintext — 디코딩할 평문 컬럼 또는 상수입니다. String
반환 값 인수의 인코딩된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base64Encode('clickhouse')
Response
┌─base64Encode('clickhouse')─┐
│ Y2xpY2tob3VzZQ==           │
└────────────────────────────┘

base64URLDecode

도입 버전: v24.6.0 RFC 4648에 따라 URL 안전 문자 집합을 사용한 Base64 표현으로 된 문자열을 디코딩합니다. 오류가 발생하면 예외를 발생시킵니다. 구문
base64URLDecode(encoded)
인수
  • encoded — 인코딩할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base64로 인코딩되어 있지 않으면 예외가 발생합니다. String
반환 값 인수의 디코딩된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
Response
┌─base64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com                            │
└───────────────────────────────────────────────────┘

base64URLEncode

도입 버전: v18.16.0 URL에 안전한 알파벳을 사용해 문자열을 Base64(RFC 4648) 형식으로 인코딩합니다. 구문
base64URLEncode(plaintext)
인수
  • plaintext — 인코딩할 평문 컬럼 또는 상수입니다. String
반환 값 인수의 인코딩된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT base64URLEncode('https://clickhouse.com')
Response
┌─base64URLEncode('https://clickhouse.com')─┐
│ aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ            │
└───────────────────────────────────────────┘

basename

도입 버전: v20.1.0 마지막 슬래시 또는 백슬래시 뒤에 있는 문자열의 끝부분을 추출합니다. 이 함수는 경로에서 파일 이름을 추출할 때 자주 사용됩니다. 구문
basename(expr)
인수
  • expr — 문자열 표현식입니다. 백슬래시는 이스케이프해야 합니다. String
반환 값 입력 문자열에서 마지막 슬래시 또는 백슬래시 뒤의 부분을 반환합니다. 입력 문자열이 슬래시 또는 백슬래시로 끝나면 함수는 빈 문자열을 반환합니다. 슬래시나 백슬래시가 없으면 원래 문자열을 반환합니다. String 예시 Unix 경로에서 파일 이름 추출
Query
SELECT 'some/long/path/to/file' AS a, basename(a)
Response
┌─a──────────────────────┬─basename('some/long/path/to/file')─┐
│ some/long/path/to/file │ file                               │
└────────────────────────┴────────────────────────────────────┘
Windows 경로에서 파일명 추출
Query
SELECT 'some\\long\\path\\to\\file' AS a, basename(a)
Response
┌─a──────────────────────┬─basename('some\\long\\path\\to\\file')─┐
│ some\long\path\to\file │ file                                   │
└────────────────────────┴────────────────────────────────────────┘
경로 구분자가 없는 String
Query
SELECT 'some-file-name' AS a, basename(a)
Response
┌─a──────────────┬─basename('some-file-name')─┐
│ some-file-name │ some-file-name             │
└────────────────┴────────────────────────────┘

byteHammingDistance

도입 버전: v23.9.0 두 바이트 문자열 사이의 해밍 거리를 계산합니다. 구문
byteHammingDistance(s1, s2)
별칭: mismatches 인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 간의 해밍 거리를 반환합니다. UInt64 예시 사용 예시
Query
SELECT byteHammingDistance('karolin', 'kathrin')
Response
┌─byteHammingDistance('karolin', 'kathrin')─┐
│                                         3 │
└───────────────────────────────────────────┘

caseFoldUTF8

도입 버전: v26.3.0 UTF-8 문자열에 유니코드 대소문자 접기를 적용하여, 대소문자를 구분하지 않는 비교에 적합한 소문자와 유사한 정규화된 형태로 변환합니다. 표준 유니코드 대소문자 접기를 적용합니다. 대소문자 접기의 영향을 받지 않는 호환 문자는 유지되지만 (예: 로마 숫자, 동그라미 숫자), 같은 일부 합자는 유니코드 대소문자 접기 자체에서 확장되므로 여전히 분해됩니다. 구문
caseFoldUTF8(str)
인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 케이스 폴딩된 UTF-8 문자열입니다. String 예시 기본 케이스 폴딩
Query
SELECT caseFoldUTF8('Straße')
Response
┌─caseFoldUTF8('Straße')─┐
│ strasse                 │
└─────────────────────────┘

compareSubstrings

도입 버전: 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
예시 사용 예시
Query
SELECT compareSubstrings('Saxony', 'Anglo-Saxon', 0, 6, 5) AS result
Response
┌─result─┐
│      0 │
└────────┘

concat

도입 버전: v1.1.0 지정된 인수를 연결합니다. String 또는 FixedString 타입이 아닌 인수는 기본 직렬화를 사용해 문자열로 변환됩니다. 이 경우 성능이 저하되므로 String/FixedString이 아닌 인수는 사용하지 않는 것이 좋습니다. 구문
concat([s1, s2, ...])
인수
  • s1, s2, ... — 개수 제한이 없는 임의의 타입의 값입니다. Any
반환 값 인수를 이어 붙여 생성한 String을 반환합니다. 인수 중 하나라도 NULL이면 함수는 NULL을 반환합니다. 인수가 없으면 빈 문자열을 반환합니다. Nullable(String) 예시 문자열 연결
Query
SELECT concat('Hello, ', 'World!')
Response
┌─concat('Hello, ', 'World!')─┐
│ Hello, World!               │
└─────────────────────────────┘
숫자 이어 붙이기
Query
SELECT concat(42, 144)
Response
┌─concat(42, 144)─┐
│ 42144           │
└─────────────────┘

concatAssumeInjective

도입 버전: v1.1.0 concat과 비슷하지만 concat(s1, s2, ...) → sn이 단사적이라고 가정합니다. 즉, 서로 다른 인수에 대해서는 서로 다른 결과를 반환합니다. GROUP BY를 최적화하는 데 사용할 수 있습니다. 구문
concatAssumeInjective([s1, s2, ...])
인수
  • s1, s2, ... — 임의의 타입 값을 개수 제한 없이 받을 수 있습니다. String 또는 FixedString
반환 값 인수를 연결해 생성된 문자열을 반환합니다. 인수 값 중 하나라도 NULL이면 함수는 NULL을 반환합니다. 인수가 전달되지 않으면 빈 문자열을 반환합니다. String 예시 GROUP BY 최적화
Query
SELECT concat(key1, key2), sum(value) FROM key_val GROUP BY concatAssumeInjective(key1, key2)
Response
┌─concat(key1, key2)─┬─sum(value)─┐
│ Hello, World!      │          3 │
│ Hello, World!      │          2 │
│ Hello, World       │          3 │
└────────────────────┴────────────┘

concatWithSeparator

도입 버전: 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 예시 사용 예시
Query
SELECT concatWithSeparator('a', '1', '2', '3', '4')
Response
┌─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 예시 사용 예시
Query
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);
Response
┌─full_name───┬─total_score─┐
│ Jane-Smith  │         240 │
│ John-Doe    │         100 │
│ John-Wilson │         120 │
└─────────────┴─────────────┘

conv

도입 버전: 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진수로 변환
Query
SELECT conv('10', 10, 2)
Response
1010
16진수를 10진수로 변환
Query
SELECT conv('FF', 16, 10)
Response
255
음수로 변환하기
Query
SELECT conv('-1', 10, 16)
Response
FFFFFFFFFFFFFFFF
이진수를 팔진수로 변환
Query
SELECT conv('1010', 2, 8)
Response
12

convertCharset

도입 버전: v1.1.0 문자열 s를 인코딩 from에서 인코딩 to로 변환해 반환합니다. 구문
convertCharset(s, from, to)
인수
  • s — 입력 문자열입니다. String
  • from — 원본 문자 인코딩입니다. String
  • to — 대상 문자 인코딩입니다. String
반환 값 문자열 s를 인코딩 from에서 인코딩 to로 변환한 값을 반환합니다. String 예시 사용 예시
Query
SELECT convertCharset('Café', 'UTF-8', 'ISO-8859-1');
Response
┌─convertChars⋯SO-8859-1')─┐
│ Caf�                     │
└──────────────────────────┘

damerauLevenshteinDistance

도입 버전: v24.1.0 두 바이트 문자열 간의 Damerau-Levenshtein 거리를 계산합니다. 구문
damerauLevenshteinDistance(s1, s2)
인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 사이의 Damerau-Levenshtein 거리를 반환합니다. UInt64 예시 사용 예시
Query
SELECT damerauLevenshteinDistance('clickhouse', 'mouse')
Response
┌─damerauLevenshteinDistance('clickhouse', 'mouse')─┐
│                                                 6 │
└───────────────────────────────────────────────────┘

decodeHTMLComponent

도입 버전: v23.9.0 문자열에 포함된 HTML 엔터티를 해당하는 문자로 디코딩합니다. 구문
decodeHTMLComponent(s)
인수
  • s — 디코딩할 HTML 엔터티가 포함된 String입니다. String
반환 값 HTML 엔터티가 디코딩된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT decodeHTMLComponent('&lt;div&gt;Hello &amp; &quot;World&quot;&lt;/div&gt;')
Response
┌─decodeHTMLComponent('&lt;div&gt;Hello &amp; &quot;World&quot;&lt;/div&gt;')─┐
│ <div>Hello & "World"</div>                                                  │
└─────────────────────────────────────────────────────────────────────────────┘

decodeXMLComponent

Introduced in: v21.2.0 문자열에 있는 XML 엔터티를 해당 문자로 디코딩합니다. 구문
decodeXMLComponent(s)
인수
  • s — 디코딩할 XML 엔터티가 포함된 String입니다. String
반환 값 제공된 문자열에서 XML 엔터티를 디코딩한 String을 반환합니다. String 예시 사용 예시
Query
SELECT decodeXMLComponent('&lt;tag&gt;Hello &amp; World&lt;/tag&gt;')
Response
┌─decodeXMLCom⋯;/tag&gt;')─┐
│ <tag>Hello & World</tag> │
└──────────────────────────┘

editDistance

도입 버전: v23.9.0 두 바이트 문자열 간의 편집 거리를 계산합니다. 구문
editDistance(s1, s2)
별칭: levenshteinDistance 인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 간의 편집 거리를 반환합니다. UInt64 예시 사용 예시
Query
SELECT editDistance('clickhouse', 'mouse')
Response
┌─editDistance('clickhouse', 'mouse')─┐
│                                   6 │
└─────────────────────────────────────┘

editDistanceUTF8

도입 버전: v24.6.0 두 UTF8 문자열 간의 편집 거리를 계산합니다. 구문
editDistanceUTF8(s1, s2)
별칭: levenshteinDistanceUTF8 인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 UTF8 문자열 간의 편집 거리를 반환합니다. UInt64 예시 사용 예시
Query
SELECT editDistanceUTF8('我是谁', '我是我')
Response
┌─editDistanceUTF8('我是谁', '我是我')──┐
│                                   1 │
└─────────────────────────────────────┘

encodeXMLComponent

도입 버전: v21.1.0 문자열을 XML 텍스트 노드나 속성에 넣을 수 있도록 문자를 이스케이프합니다. 구문
encodeXMLComponent(s)
인수
  • s — 이스케이프할 문자열입니다. String
반환 값 이스케이프된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT
    '<tag>Hello & "World"</tag>' AS original,
    encodeXMLComponent('<tag>Hello & "World"</tag>') AS xml_encoded;
Response
┌─original───────────────────┬─xml_encoded──────────────────────────────────────────┐
│ <tag>Hello & "World"</tag> │ &lt;tag&gt;Hello &amp; &quot;World&quot;&lt;/tag&gt; │
└────────────────────────────┴──────────────────────────────────────────────────────┘

endsWith

도입 버전: v1.1.0 문자열이 지정된 접미사로 끝나는지 확인합니다. 구문
endsWith(s, suffix)
인수
  • s — 검사할 String. String
  • suffix — 검사할 접미사입니다. String
반환 값 ssuffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT endsWith('ClickHouse', 'House');
Response
┌─endsWith('Cl⋯', 'House')─┐
│                        1 │
└──────────────────────────┘

endsWithCaseInsensitive

도입 버전: v25.10.0 문자열이 지정된 대소문자 구분 없는 접미사로 끝나는지 확인합니다. 구문
endsWithCaseInsensitive(s, suffix)
인수
  • s — 검사할 문자열입니다. String
  • suffix — 대소문자를 구분하지 않고 검사할 접미사입니다. String
반환 값 s가 대소문자를 구분하지 않는 suffix로 끝나면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT endsWithCaseInsensitive('ClickHouse', 'HOUSE');
Response
┌─endsWithCaseInsensitive('Cl⋯', 'HOUSE')─┐
│                                       1 │
└─────────────────────────────────────────┘

endsWithCaseInsensitiveUTF8

도입 버전: v25.10.0 문자열 s가 대소문자를 구분하지 않는 suffix로 끝나는지 여부를 반환합니다. 문자열에 유효한 UTF-8로 인코딩된 텍스트가 포함되어 있다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다. 구문
endsWithCaseInsensitiveUTF8(s, suffix)
인수
  • s — 확인할 문자열입니다. String
  • suffix — 확인할, 대소문자를 구분하지 않는 접미사입니다. String
반환 값 s가 대소문자를 구분하지 않는 suffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT endsWithCaseInsensitiveUTF8('данных', 'ых');
Response
┌─endsWithCaseInsensitiveUTF8('данных', 'ых')─┐
│                                           1 │
└─────────────────────────────────────────────┘

endsWithUTF8

도입 버전: v23.8.0 문자열 ssuffix로 끝나는지 여부를 반환합니다. 문자열이 유효한 UTF-8로 인코딩된 텍스트라고 가정합니다. 이 가정이 충족되지 않아도 예외가 발생하지 않으며, 결과는 정의되지 않습니다. 구문
endsWithUTF8(s, suffix)
인수
  • s — 확인할 문자열입니다. String
  • suffix — 확인할 접미사입니다. String
반환 값 ssuffix로 끝나면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT endsWithUTF8('данных', 'ых');
Response
┌─endsWithUTF8('данных', 'ых')─┐
│                            1 │
└──────────────────────────────┘

extractTextFromHTML

도입 버전: v21.3.0 HTML 또는 XHTML의 텍스트 콘텐츠를 추출합니다. 이 함수는 HTML 태그, 주석, script/style 요소를 제거하고 텍스트 콘텐츠만 남깁니다. 구체적으로 다음을 처리합니다.
  • 모든 HTML/XML 태그 제거
  • 주석 제거 ({/* */})
  • script 및 style 요소와 해당 콘텐츠 제거
  • CDATA 섹션 처리(원문 그대로 복사)
  • 공백의 적절한 처리 및 정규화
참고: HTML 엔터티는 디코딩되지 않으므로, 필요한 경우 별도의 함수로 처리해야 합니다. 구문
extractTextFromHTML(html)
인수
  • html — 텍스트를 추출할 HTML 콘텐츠를 포함하는 String입니다. String
반환 값 정규화된 공백이 적용된 텍스트 콘텐츠를 반환합니다. String 예시 사용 예시
Query
SELECT extractTextFromHTML('
<html>
    <head><title>Page Title</title></head>
    <body>
        <p>Hello <b>World</b>!</p>
        <script>alert("test");</script>
        <!-- comment -->
    </body>
</html>
');
Response
┌─extractTextFromHTML('<html><head>...')─┐
│ Page Title Hello World!                │
└────────────────────────────────────────┘

firstLine

도입 버전: v23.7.0 여러 줄 문자열에서 첫 번째 줄을 반환합니다. 구문
firstLine(s)
인수
  • s — 입력 문자열입니다. String
반환 값 입력 문자열의 첫 번째 줄을 반환합니다. 줄 구분자가 없으면 전체 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT firstLine('foo\\nbar\\nbaz')
Response
┌─firstLine('foo\nbar\nbaz')─┐
│ foo                        │
└────────────────────────────┘

idnaDecode

도입 버전: v24.1.0 Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 유니코드(UTF-8) 표현(ToUnicode 알고리즘)을 반환합니다. 오류가 발생하면(예: 입력이 유효하지 않은 경우) 입력 문자열을 반환합니다. 대소문자 정규화로 인해 idnaEncode()idnaDecode()를 반복 적용해도 원래 문자열이 반환된다고 보장되지는 않습니다. 구문
idnaDecode(s)
인수
  • s — 입력 문자열입니다. String
반환 값 입력 값에 적용되는 IDNA 메커니즘에 따라 입력 문자열의 유니코드(UTF-8) 표현을 반환합니다. String 예시 사용 예시
Query
SELECT idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')
Response
┌─idnaDecode('xn--strae-oqa.xn--mnchen-3ya.de')─┐
│ straße.münchen.de                             │
└───────────────────────────────────────────────┘

idnaEncode

도입 버전: v24.1.0 Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 ASCII 표현(ToASCII 알고리즘)을 반환합니다. 입력 문자열은 UTF로 인코딩되어 있어야 하며 ASCII 문자열로 변환 가능해야 합니다. 그렇지 않으면 예외가 발생합니다.
퍼센트 디코딩이나 탭, 공백 또는 제어 문자의 제거는 수행되지 않습니다.
구문
idnaEncode(s)
인수
  • s — 입력 문자열입니다. String
반환 값 입력 값에 적용된 IDNA 메커니즘에 따라 입력 문자열의 ASCII 표현을 반환합니다. String 예시 사용 예시
Query
SELECT idnaEncode('straße.münchen.de')
Response
┌─idnaEncode('straße.münchen.de')─────┐
│ xn--strae-oqa.xn--mnchen-3ya.de     │
└─────────────────────────────────────┘

initcap

도입 버전: v23.7.0 각 단어의 첫 글자를 대문자로, 나머지 글자는 소문자로 변환합니다. 단어는 영숫자가 아닌 문자로 구분된 영숫자 문자 시퀀스입니다.
initcap는 각 단어의 첫 글자만 대문자로 변환하므로 아포스트로피나 대문자가 포함된 단어에서는 예상하지 못한 동작이 발생할 수 있습니다. 이는 알려진 동작이며 현재로서는 수정할 계획이 없습니다.
구문
initcap(s)
인수
  • s — 입력 문자열입니다. String
반환 값 각 단어의 첫 글자를 대문자로 변환한 s를 반환합니다. String 예시 사용 예시
Query
SELECT initcap('building for fast')
Response
┌─initcap('building for fast')─┐
│ Building For Fast            │
└──────────────────────────────┘
아포스트로피 또는 대문자가 포함된 단어의 알려진 동작 예시
Query
SELECT initcap('John''s cat won''t eat.');
Response
┌─initcap('Joh⋯n\'t eat.')─┐
│ John'S Cat Won'T Eat.    │
└──────────────────────────┘

initcapUTF8

도입 버전: v23.7.0 initcap와 마찬가지로 initcapUTF8은 각 단어의 첫 글자를 대문자로, 나머지 글자를 소문자로 변환합니다. 문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다.
이 함수는 언어를 감지하지 않습니다. 예를 들어 터키어에서는 결과가 완전히 정확하지 않을 수 있습니다(i/İ 대 i/I). 코드 포인트의 대문자와 소문자에서 UTF-8 바이트 시퀀스 길이가 서로 다르면 해당 코드 포인트의 결과가 올바르지 않을 수 있습니다.
구문
initcapUTF8(s)
인수
  • s — 입력 문자열입니다. String
반환 값 각 단어의 첫 글자를 대문자로 변환한 s를 반환합니다. String 예시 사용 예시
Query
SELECT initcapUTF8('не тормозит')
Response
┌─initcapUTF8('не тормозит')─┐
│ Не Тормозит                │
└────────────────────────────┘

isValidASCII

도입 버전: v25.9.0 입력 String 또는 FixedString이 ASCII 바이트(0x00–0x7F)만 포함하면 1을, 그렇지 않으면 0을 반환합니다. 입력이 유효한 ASCII인 경우에 최적화되어 있습니다. 구문
isValidASCII(str)
별칭: isASCII 인수
  • 없음.
반환 값 예시 isValidASCII
Query
SELECT isValidASCII('hello') AS is_ascii, isValidASCII('你好') AS is_not_ascii
Response

isValidUTF8

도입 버전: v20.1.0 바이트 집합이 올바른 UTF-8 인코딩 텍스트인지 확인합니다. 구문
isValidUTF8(s)
인수
  • s — UTF-8로 인코딩된 문자열이 유효한지 검사할 문자열입니다. String
반환 값 바이트 집합이 유효한 UTF-8 인코딩 텍스트를 구성하면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT isValidUTF8('\\xc3\\xb1') AS valid, isValidUTF8('\\xc3\\x28') AS invalid
Response
┌─valid─┬─invalid─┐
│     1 │       0 │
└───────┴─────────┘

jaroSimilarity

도입 버전: v24.1.0 두 바이트 문자열 사이의 Jaro 유사도를 계산합니다. 구문
jaroSimilarity(s1, s2)
인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 사이의 Jaro 유사도를 반환합니다. Float64 예시 사용 예시
Query
SELECT jaroSimilarity('clickhouse', 'click')
Response
┌─jaroSimilarity('clickhouse', 'click')─┐
│                    0.8333333333333333 │
└───────────────────────────────────────┘

jaroWinklerSimilarity

도입 버전: v24.1.0 두 바이트 문자열 간의 Jaro-Winkler 유사도를 계산합니다. 구문
jaroWinklerSimilarity(s1, s2)
인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 사이의 Jaro-Winkler 유사도를 반환합니다. Float64 예시 사용 예시
Query
SELECT jaroWinklerSimilarity('clickhouse', 'click')
Response
┌─jaroWinklerSimilarity('clickhouse', 'click')─┐
│                           0.8999999999999999 │
└──────────────────────────────────────────────┘

left

도입 버전: v22.1.0 문자열 s에서 왼쪽부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다. 구문
left(s, offset)
인수
  • s — 부분 문자열을 추출할 문자열입니다. String 또는 FixedString
  • offset — 오프셋의 바이트 수입니다. (U)Int*
반환 값 다음을 반환합니다.
  • offset이 양수이면, 문자열의 왼쪽에서 시작하는 offset바이트 길이의 s 부분 문자열입니다.
  • offset이 음수이면, 문자열의 왼쪽에서 시작하는 length(s) - |offset|바이트 길이의 s 부분 문자열입니다.
  • length0이면 빈 문자열을 반환합니다. String
예시 양수 오프셋
Query
SELECT left('Hello World', 5)
Response
Hello
음수 OFFSET
Query
SELECT left('Hello World', -6)
Response
Hello

leftPad

도입 버전: v21.8.0 결과 문자열의 길이가 지정된 length에 도달할 때까지 문자열 왼쪽을 공백 또는 지정된 문자열로(필요한 경우 여러 번) 채웁니다. 구문
leftPad(string, length[, pad_string])
별칭: lpad 인수
  • string — 패딩할 입력 문자열입니다. String
  • length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
  • pad_string — 선택 사항입니다. 입력 문자열을 패딩하는 데 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 패딩됩니다. String
반환 값 지정한 길이가 되도록 왼쪽이 패딩된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT leftPad('abc', 7, '*'), leftPad('def', 7)
Response
┌─leftPad('abc', 7, '*')─┬─leftPad('def', 7)─┐
│ ****abc                │     def           │
└────────────────────────┴───────────────────┘

leftPadUTF8

도입된 버전: v21.8.0 결과 문자열이 지정된 길이에 이를 때까지 UTF8 문자열의 왼쪽을 공백 또는 지정한 문자열로 채웁니다(필요한 경우 여러 번 반복). 문자열 길이를 바이트 단위로 측정하는 leftPad와 달리, 이 함수는 문자열 길이를 코드 포인트 단위로 측정합니다. 구문
leftPadUTF8(string, length[, pad_string])
인수
  • string — 패딩할 입력 문자열입니다. String
  • length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length자로 잘립니다. (U)Int*
  • pad_string — 선택 사항입니다. 입력 문자열을 채울 때 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 채워집니다. String
반환 값 지정된 길이가 되도록 왼쪽이 채워진 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT leftPadUTF8('абвг', 7, '*'), leftPadUTF8('дежз', 7)
Response
┌─leftPadUTF8('абвг', 7, '*')─┬─leftPadUTF8('дежз', 7)─┐
│ ***абвг                     │    дежз                │
└─────────────────────────────┴────────────────────────┘

leftUTF8

도입 버전: v22.1.0 UTF-8로 인코딩된 문자열 s에서 왼쪽을 기준으로 지정된 offset부터 부분 문자열을 반환합니다. 구문
leftUTF8(s, offset)
인수
  • s — 부분 문자열을 계산할 기준이 되는 UTF-8로 인코딩된 문자열입니다. String 또는 FixedString
  • offset — 오프셋의 바이트 수입니다. (U)Int*
반환 값 반환 값:
  • offset이 양수이면 문자열의 왼쪽부터 시작해 offset바이트인 s의 부분 문자열을 반환합니다.\n”
  • offset이 음수이면 문자열의 왼쪽부터 시작해 length(s) - |offset|바이트인 s의 부분 문자열을 반환합니다.\n”
  • length가 0이면 빈 문자열을 반환합니다. String
예시 양수 offset
Query
SELECT leftUTF8('Привет', 4)
Response
Прив
음수 OFFSET
Query
SELECT leftUTF8('Привет', -4)
Response
Пр

lengthUTF8

도입 버전: v1.1.0 문자열의 길이를 바이트 수나 문자 수가 아닌 유니코드 코드 포인트 기준으로 반환합니다. 문자열에 유효한 UTF-8 인코딩 텍스트가 포함되어 있다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다. 구문
lengthUTF8(s)
별칭: CHARACTER_LENGTH, CHAR_LENGTH 인수
  • s — 유효한 UTF-8로 인코딩된 텍스트를 포함하는 String. String
반환 값 문자열 s의 길이를 유니코드 코드 포인트 기준으로 반환합니다. UInt64 예시 사용 예시
Query
SELECT lengthUTF8('Здравствуй, мир!')
Response
┌─lengthUTF8('Здравствуй, мир!')─┐
│                             16 │
└────────────────────────────────┘

lower

도입 버전: v1.1.0 ASCII 문자열을 소문자로 변환합니다. 구문
lower(s)
별칭: lcase 인수
  • s — 소문자로 변환할 문자열입니다. String
반환 값 s를 소문자로 변환한 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT lower('CLICKHOUSE')
Response
┌─lower('CLICKHOUSE')─┐
│ clickhouse          │
└─────────────────────┘

lowerUTF8

도입 버전: v1.1.0 문자열이 유효한 UTF-8 인코딩 텍스트를 포함한다고 가정하고, 해당 문자열을 소문자로 변환합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다. 구문
lowerUTF8(input)
인수
  • input — 소문자로 변환할 입력 문자열입니다. String
반환 값 소문자 문자열을 반환합니다. String 예시 첫 번째
Query
SELECT lowerUTF8('München') as Lowerutf8;
Response
münchen

naturalSortKey

도입 버전: v26.3.0 이 함수는 자연 정렬에 사용되는 함수입니다. 구문
naturalSortKey(s)
별칭: NATURAL_SORT_KEY 인수
  • s — 자연 정렬 키 문자열로 변환할 문자열입니다. String
반환 값 s에서 생성된 자연 정렬 키 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT s FROM t ORDER BY naturalSortKey(s)
Response
┌─s───┐
│ a1  │
| a02 │
└─────┘

normalizeUTF8NFC

도입 버전: v21.11.0 UTF-8 문자열을 NFC 정규화 형식에 따라 정규화합니다. 구문
normalizeUTF8NFC(str)
인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 UTF-8 문자열의 NFC 정규화된 형태를 반환합니다. String 예시 사용 예시
Query
SELECT
'é' AS original, -- e + 결합 악센트 부호 (U+0065 + U+0301)
length(original),
normalizeUTF8NFC('é') AS nfc_normalized, -- é (U+00E9)
length(nfc_normalized);
Response
┌─original─┬─length(original)─┬─nfc_normalized─┬─length(nfc_normalized)─┐
│ é        │                2 │ é              │                      2 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘

normalizeUTF8NFD

도입 버전: v21.11.0 UTF-8 문자열을 NFD 정규화 형식에 따라 정규화합니다. 구문
normalizeUTF8NFD(str)
인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 UTF-8 문자열의 NFD로 정규화된 형태를 반환합니다. String 예시 사용 예시
Query
SELECT
    'é' AS original, -- é (U+00E9)
    length(original),
    normalizeUTF8NFD('é') AS nfd_normalized, -- e + 결합 악센트 (U+0065 + U+0301)
    length(nfd_normalized);
Response
┌─original─┬─length(original)─┬─nfd_normalized─┬─length(nfd_normalized)─┐
│ é        │                2 │ é              │                      3 │
└──────────┴──────────────────┴────────────────┴────────────────────────┘

normalizeUTF8NFKC

도입 버전: v21.11.0 UTF-8 문자열을 NFKC 정규화 형식에 따라 정규화합니다. 구문
normalizeUTF8NFKC(str)
인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 UTF-8 문자열을 NFKC로 정규화한 값을 반환합니다. String 예시 사용 예시
Query
SELECT
    '① ② ③' AS original,                            -- 원형 숫자 문자
    normalizeUTF8NFKC('① ② ③') AS nfkc_normalized;  -- 1 2 3으로 변환
Response
┌─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 예시 사용 예시
Query
SELECT
    'Ä ① Hello' AS original,
    normalizeUTF8NFKCCasefold('Ä ① Hello') AS nfkc_cf_normalized;
Response
┌─original───┬─nfkc_cf_normalized─┐
│ Ä ① Hello │ ä 1 hello           │
└────────────┴────────────────────┘

normalizeUTF8NFKD

도입 버전: v21.11.0 UTF-8 문자열을 NFKD 정규화 형식에 따라 정규화합니다. 구문
normalizeUTF8NFKD(str)
인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 UTF-8 문자열의 NFKD 정규화된 형식을 반환합니다. String 예시 사용 예시
Query
SELECT
    'H₂O²' AS original,                            -- H + 아래 첨자 2 + O + 위 첨자 2
    normalizeUTF8NFKD('H₂O²') AS nfkd_normalized;  -- H 2 O 2로 변환
Response
┌─original─┬─nfkd_normalized─┐
│ H₂O²     │ H2O2            │
└──────────┴─────────────────┘

punycodeDecode

도입 버전: v24.1.0 Punycode로 인코딩된 문자열의 UTF-8로 인코딩된 일반 텍스트를 반환합니다. 유효한 Punycode 인코딩 문자열이 주어지지 않으면 예외가 발생합니다. 구문
punycodeDecode(s)
인수
  • s — Punycode로 인코딩된 문자열입니다. String
반환 값 입력값의 평문을 반환합니다. String 예시 사용 예시
Query
SELECT punycodeDecode('Mnchen-3ya')
Response
┌─punycodeDecode('Mnchen-3ya')─┐
│ München                      │
└──────────────────────────────┘

punycodeEncode

도입 버전: v24.1.0 문자열의 Punycode 표현을 반환합니다. 문자열은 UTF8로 인코딩되어 있어야 하며, 그렇지 않으면 동작이 정의되지 않습니다. 구문
punycodeEncode(s)
인수 반환 값 입력값의 Punycode 표현을 반환합니다. String 예시 사용 예시
Query
SELECT punycodeEncode('München')
Response
┌─punycodeEncode('München')─┐
│ Mnchen-3ya                │
└───────────────────────────┘

regexpExtract

도입 버전: 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 예시 사용 예시
Query
SELECT
    regexpExtract('100-200', '(\\d+)-(\\d+)', 1),
    regexpExtract('100-200', '(\\d+)-(\\d+)', 2),
    regexpExtract('100-200', '(\\d+)-(\\d+)', 0),
    regexpExtract('100-200', '(\\d+)-(\\d+)');
Response
┌─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                                       │
└──────────────────────────────────────────────┴──────────────────────────────────────────────┴──────────────────────────────────────────────┴───────────────────────────────────────────┘

regexpPosition

도입 버전: v26.5.0 바이트 위치 position에서 검색을 시작해, haystack에서 patternoccurrence번째로 일치하는 바이트 위치(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 예시 기본 사용법
Query
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);
Response
┌─...─┬─...─┬─...─┬─...─┬─...─┐
│   7 │   4 │   5 │   7 │  10 │
└─────┴─────┴─────┴─────┴─────┘

removeDiacriticsUTF8

도입 버전: v26.3.0 UTF-8 문자열의 문자를 NFD로 분해한 뒤, 결합 마크(유니코드 범주 Mn)를 제거하고 NFC로 다시 조합하여 발음 구별 기호(악센트)를 제거합니다. 구문
removeDiacriticsUTF8(str)
별칭: removeAccentsUTF8 인수
  • str — UTF-8로 인코딩된 입력 문자열입니다. String
반환 값 발음 구별 부호가 제거된 UTF-8 문자열입니다. String 예시 기본 발음 구별 부호 제거
Query
SELECT removeDiacriticsUTF8('café résumé naïve')
Response
┌─removeDiacriticsUTF8('café résumé naïve')─┐
│ cafe resume naive                          │
└────────────────────────────────────────────┘

repeat

도입 버전: v20.1.0 문자열을 지정한 횟수만큼 반복하여 이어 붙입니다. 구문
repeat(s, n)
인수
  • s — 반복할 문자열입니다. String
  • n — 문자열을 반복할 횟수입니다. (U)Int*
반환 값 문자열 sn회 반복한 문자열입니다. n이 음수이면 빈 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT repeat('abc', 10)
Response
┌─repeat('abc', 10)──────────────┐
│ abcabcabcabcabcabcabcabcabcabc │
└────────────────────────────────┘

reverseUTF8

도입 버전: v1.1.0 문자열에서 유니코드 코드 포인트의 순서를 반대로 바꿉니다. 문자열에 유효한 UTF-8 인코딩 텍스트가 들어 있다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다. 구문
reverseUTF8(s)
인수
  • s — 유효한 UTF-8 인코딩 텍스트를 포함하는 String입니다. String
반환 값 유니코드 코드 포인트 시퀀스를 역순으로 뒤집은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT reverseUTF8('ClickHouse')
Response
esuoHkcilC
도입 버전: v22.1.0 문자열 s의 오른쪽부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다. 구문
right(s, offset)
인수
  • s — 부분 문자열을 추출할 문자열입니다. String 또는 FixedString
  • offset — 오프셋의 바이트 수입니다. (U)Int*
반환 값 다음을 반환합니다:
  • offset이 양수이면 문자열의 오른쪽에서 시작해 offset바이트 길이의 s 부분 문자열을 반환합니다.
  • offset이 음수이면 문자열의 오른쪽에서 시작해 length(s) - |offset|바이트 길이의 s 부분 문자열을 반환합니다.
  • length0이면 빈 문자열을 반환합니다. String
예시 양수 offset
Query
SELECT right('Hello', 3)
Response
llo
음수 오프셋
Query
SELECT right('Hello', -3)
Response
lo

rightPad

도입 버전: v21.8.0 결과 문자열의 길이가 지정된 length에 도달할 때까지 문자열 오른쪽을 공백 또는 지정된 문자열로(필요한 경우 여러 번) 채웁니다. 구문
rightPad(string, length[, pad_string])
별칭: rpad 인수
  • string — 패딩할 입력 문자열입니다. String
  • length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
  • pad_string — 선택 사항입니다. 입력 문자열을 채우는 데 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 채워집니다. String
반환 값 지정된 길이가 되도록 오른쪽이 채워진 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT rightPad('abc', 7, '*'), rightPad('abc', 7)
Response
┌─rightPad('abc', 7, '*')─┬─rightPad('abc', 7)─┐
│ abc****                 │ abc                │
└─────────────────────────┴────────────────────┘

rightPadUTF8

도입 버전: v21.8.0 결과 문자열이 지정된 길이에 도달할 때까지 문자열의 오른쪽을 공백이나 지정된 문자열로 채웁니다(필요한 경우 여러 번 반복). 문자열 길이를 바이트 단위로 측정하는 rightPad와 달리, 이 함수는 문자열 길이를 코드 포인트 단위로 측정합니다. 구문
rightPadUTF8(string, length[, pad_string])
인수
  • string — 패딩할 입력 문자열입니다. String
  • length — 결과 문자열의 길이입니다. 값이 입력 문자열의 길이보다 작으면 입력 문자열은 length개의 문자로 잘립니다. (U)Int*
  • pad_string — 선택 사항입니다. 입력 문자열을 패딩할 때 사용할 문자열입니다. 지정하지 않으면 입력 문자열은 공백으로 패딩됩니다. String
반환 값 지정된 길이가 되도록 오른쪽에 패딩된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT rightPadUTF8('абвг', 7, '*'), rightPadUTF8('абвг', 7)
Response
┌─rightPadUTF8('абвг', 7, '*')─┬─rightPadUTF8('абвг', 7)─┐
│ абвг***                      │ абвг                    │
└──────────────────────────────┴─────────────────────────┘

rightUTF8

도입 버전: v22.1.0 UTF-8로 인코딩된 문자열 s의 오른쪽에서부터 지정한 offset 위치에서 시작하는 부분 문자열을 반환합니다. 구문
rightUTF8(s, offset)
인수
  • s — 부분 문자열을 추출할 UTF-8 인코딩 문자열입니다. String 또는 FixedString
  • offset — 오프셋의 바이트 수입니다. (U)Int*
반환 값 다음을 반환합니다.
  • offset이 양수이면, 문자열의 오른쪽에서 시작해 offset바이트 길이의 s 부분 문자열을 반환합니다.
  • offset이 음수이면, 문자열의 오른쪽에서 시작해 length(s) - |offset|바이트 길이의 s 부분 문자열을 반환합니다.
  • length0이면 빈 문자열을 반환합니다. String
예시 양수 오프셋
Query
SELECT rightUTF8('Привет', 4)
Response
ивет
음수 오프셋
Query
SELECT rightUTF8('Привет', -4)
Response
ет

soundex

도입 버전: v23.4.0 문자열의 Soundex 코드를 반환합니다. 구문
soundex(s)
인수
  • s — 입력 문자열입니다. String
반환 값 입력 문자열의 Soundex 코드를 반환합니다. String 예시 사용 예시
Query
SELECT soundex('aksel')
Response
┌─soundex('aksel')─┐
│ A240             │
└──────────────────┘

space

도입 버전: v23.5.0 공백( )을 지정한 횟수만큼 반복해 연결합니다. 구문
space(n)
인수
  • n — 공백을 반복할 횟수입니다. (U)Int*
반환 값 공백이 n번 반복된 문자열을 반환합니다. n <= 0이면 빈 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT space(3) AS res, length(res);
Response
┌─res─┬─length(res)─┐
│     │           3 │
└─────┴─────────────┘

sparseGrams

도입 버전: 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) 예시 사용 예시
Query
SELECT sparseGrams('alice', 3)
Response
┌─sparseGrams('alice', 3)────────────┐
│ ['ali','lic','lice','ice']         │
└────────────────────────────────────┘

sparseGramsHashes

도입 버전: 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) 예시 사용 예시
Query
SELECT sparseGramsHashes('alice', 3)
Response
┌─sparseGramsHashes('alice', 3)──────────────────────┐
│ [1481062250,2450405249,4012725991,1918774096]      │
└────────────────────────────────────────────────────┘

sparseGramsHashesUTF8

도입 버전: 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) 예시 사용 예시
Query
SELECT sparseGramsHashesUTF8('алиса', 3)
Response
┌─sparseGramsHashesUTF8('алиса', 3)─┐
│ [4178533925,3855635300,561830861] │
└───────────────────────────────────┘

sparseGramsUTF8

도입 버전: 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) 예시 사용 예시
Query
SELECT sparseGramsUTF8('алиса', 3)
Response
┌─sparseGramsUTF8('алиса', 3)─┐
│ ['али','лис','иса']         │
└─────────────────────────────┘

startsWith

도입 버전: v1.1.0 문자열이 지정된 문자열로 시작하는지 확인합니다. 구문
startsWith(s, prefix)
인수
  • s — 확인할 문자열입니다. String
  • prefix — 확인할 접두사입니다. String
반환 값 sprefix로 시작하면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT startsWith('ClickHouse', 'Click');
Response
┌─startsWith('⋯', 'Click')─┐
│                        1 │
└──────────────────────────┘

startsWithCaseInsensitive

도입 버전: v25.10.0 문자열이 지정된 문자열로 시작하는지 여부를 대소문자를 구분하지 않고 확인합니다. 구문
startsWithCaseInsensitive(s, prefix)
인수
  • s — 확인할 문자열입니다. String
  • prefix — 확인할 대소문자를 구분하지 않는 접두사입니다. String
반환 값 s가 대소문자를 구분하지 않는 prefix로 시작하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT startsWithCaseInsensitive('ClickHouse', 'CLICK');
Response
┌─startsWithCaseInsensitive('⋯', 'CLICK')─┐
│                                       1 │
└─────────────────────────────────────────┘

startsWithCaseInsensitiveUTF8

도입 버전: v25.10.0 문자열이 지정된 대소문자를 구분하지 않는 접두사로 시작하는지 확인합니다. 문자열에 유효한 UTF-8 인코딩 텍스트가 포함되어 있다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다. 구문
startsWithCaseInsensitiveUTF8(s, prefix)
인수
  • s — 확인할 문자열입니다. String
  • prefix — 대소문자를 구분하지 않는 확인할 접두사입니다. String
반환 값 s가 대소문자를 구분하지 않는 prefix로 시작하면 1을 반환하고, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT startsWithCaseInsensitiveUTF8('приставка', 'при')
Response
┌─startsWithUT⋯ка', 'при')─┐
│                        1 │
└──────────────────────────┘

startsWithUTF8

도입 버전: v23.8.0 문자열이 지정된 prefix로 시작하는지 확인합니다. 문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정합니다. 이 가정이 충족되지 않아도 예외는 발생하지 않으며 결과는 정의되지 않습니다. 구문
startsWithUTF8(s, prefix)
인수
  • s — 확인할 문자열입니다. String
  • prefix — 확인할 접두사입니다. String
반환 값 sprefix로 시작하면 1을, 그렇지 않으면 0을 반환합니다. UInt8 예시 사용 예시
Query
SELECT startsWithUTF8('приставка', 'при')
Response
┌─startsWithUT⋯ка', 'при')─┐
│                        1 │
└──────────────────────────┘

stringBytesEntropy

도입 버전: v25.6.0 문자열의 바이트 분포에 대한 샤논 엔트로피를 계산합니다. 구문
stringBytesEntropy(s)
인수
  • s — 분석할 문자열입니다. String
반환 값 문자열 내 바이트 분포의 샤논 엔트로피를 반환합니다. Float64 예시 사용 예시
Query
SELECT stringBytesEntropy('Hello, world!')
Response
┌─stringBytesEntropy('Hello, world!')─┐
│                         3.07049960  │
└─────────────────────────────────────┘

stringBytesUniq

도입 버전: v25.6.0 문자열에 포함된 고유 바이트 수를 계산합니다. 구문
stringBytesUniq(s)
인수
  • s — 분석할 문자열입니다. String
반환 값 문자열에서 서로 다른 바이트의 개수를 반환합니다. UInt16 예시 사용 예시
Query
SELECT stringBytesUniq('Hello')
Response
┌─stringBytesUniq('Hello')─┐
│                        4 │
└──────────────────────────┘

stringJaccardIndex

도입 버전: v23.11.0 두 바이트 문자열 사이의 자카드 유사도 지수를 계산합니다. 구문
stringJaccardIndex(s1, s2)
인수
  • s1 — 첫 번째 입력 문자열입니다. String
  • s2 — 두 번째 입력 문자열입니다. String
반환 값 두 문자열 사이의 Jaccard 유사도 지수를 반환합니다. Float64 예시 사용 예시
Query
SELECT stringJaccardIndex('clickhouse', 'mouse')
Response
┌─stringJaccardIndex('clickhouse', 'mouse')─┐
│                                       0.4 │
└───────────────────────────────────────────┘

stringJaccardIndexUTF8

도입 버전: v23.11.0 UTF8로 인코딩된 문자열용 stringJaccardIndex입니다. 구문
stringJaccardIndexUTF8(s1, s2)
인수
  • s1 — 첫 번째 UTF8 입력 문자열입니다. String
  • s2 — 두 번째 UTF8 입력 문자열입니다. String
반환 값 두 UTF8 문자열 사이의 자카드 유사도 지수를 반환합니다. Float64 예시 사용 예시
Query
SELECT stringJaccardIndexUTF8('我爱你', '我也爱你')
Response
┌─stringJaccardIndexUTF8('我爱你', '我也爱你')─┐
│                                       0.75 │
└─────────────────────────────────────────────┘

substring

도입 버전: v1.1.0 지정된 바이트 인덱스 offset에서 시작하는 문자열 s의 부분 문자열을 반환합니다. 바이트 수는 다음 규칙에 따라 1부터 계산됩니다.
  • offset0이면 빈 문자열이 반환됩니다.
  • offset이 음수이면 부분 문자열은 문자열의 시작이 아니라 끝에서 offset 문자만큼 떨어진 위치에서 시작합니다.
선택적 인수 length는 반환되는 부분 문자열이 가질 수 있는 최대 바이트 수를 지정합니다. 구문
substring(s, offset[, length])
별칭: byteSlice, mid, substr 인수
  • s — 부분 문자열을 추출할 문자열입니다. String 또는 FixedString 또는 Enum
  • offsets에서 부분 문자열이 시작되는 위치입니다. (U)Int*
  • length — 선택 사항입니다. 부분 문자열의 최대 길이입니다. (U)Int*
반환 값 인덱스 offset에서 시작하는 s의 부분 문자열을 length바이트 길이로 반환합니다. String 예시 기본 사용법
Query
SELECT 'database' AS db, substr(db, 5), substr(db, 5, 1)
Response
┌─db───────┬─substring('database', 5)─┬─substring('database', 5, 1)─┐
│ database │ base                     │ b                           │
└──────────┴──────────────────────────┴─────────────────────────────┘

substringIndex

도입 버전: v23.7.0 Spark 또는 MySQL과 마찬가지로, 구분자 delimcount번 나타나기 전까지의 s 부분 문자열을 반환합니다. 구문
substringIndex(s, delim, count)
별칭: SUBSTRING_INDEX 인수
  • s — 부분 문자열을 추출할 문자열입니다. String
  • delim — 분리 기준이 되는 문자입니다. String
  • count — 부분 문자열을 추출하기 전에 셀 구분자의 출현 횟수입니다. count가 양수이면 마지막 구분자의 왼쪽에 있는 모든 내용(왼쪽부터 셈)이 반환됩니다. count가 음수이면 마지막 구분자의 오른쪽에 있는 모든 내용(오른쪽부터 셈)이 반환됩니다. UInt 또는 Int
반환 값 s에서 delimcount번 나타나기 전까지의 부분 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT substringIndex('www.clickhouse.com', '.', 2)
Response
┌─substringIndex('www.clickhouse.com', '.', 2)─┐
│ www.clickhouse                               │
└──────────────────────────────────────────────┘

substringIndexUTF8

도입 버전: v23.7.0 유니코드 코드 포인트를 기준으로, delim 구분자가 count번 나타나기 전까지의 s 부분 문자열을 반환합니다. 문자열에 유효한 UTF-8로 인코딩된 텍스트가 들어 있다고 가정합니다. 이 가정이 깨져도 예외는 발생하지 않으며 결과는 정의되지 않습니다. 구문
substringIndexUTF8(s, delim, count)
인수
  • s — 부분 문자열을 추출할 문자열입니다. String
  • delim — 분리 기준이 되는 문자입니다. String
  • count — 부분 문자열을 추출하기 전에 셀 구분자의 출현 횟수입니다. count가 양수이면 마지막 구분자(왼쪽부터 계산)의 왼쪽에 있는 모든 내용이 반환됩니다. count가 음수이면 마지막 구분자(오른쪽부터 계산)의 오른쪽에 있는 모든 내용이 반환됩니다. UInt 또는 Int
반환 값 s에서 delimcount번 나타나기 전까지의 부분 문자열을 반환합니다. String 예시 UTF8 예시
Query
SELECT substringIndexUTF8('www.straßen-in-europa.de', '.', 2)
Response
www.straßen-in-europa

substringUTF8

도입 버전: v1.1.0 지정된 코드 포인트 인덱스 offset에서 시작하는 문자열 s의 부분 문자열을 반환합니다. 코드 포인트는 다음 규칙에 따라 1부터 계산합니다.
  • offset0이면 빈 문자열을 반환합니다.
  • offset이 음수이면 부분 문자열은 문자열의 시작이 아니라 끝에서부터 offset 코드 포인트 떨어진 위치에서 시작합니다.
선택적 인수 length는 반환되는 부분 문자열의 최대 코드 포인트 수를 지정합니다.
이 함수는 문자열에 유효한 UTF-8로 인코딩된 텍스트가 들어 있다고 가정합니다. 이 가정이 충족되지 않아도 예외가 발생하지 않으며 결과는 정의되지 않습니다.
구문
substringUTF8(s, offset[, length])
인수
  • s — 부분 문자열을 추출할 문자열입니다. String 또는 FixedString 또는 Enum
  • offsets에서 부분 문자열이 시작되는 위치입니다. Int 또는 UInt
  • length — 부분 문자열의 최대 길이입니다. 선택 사항입니다. Int 또는 UInt
반환 값 코드 포인트 인덱스 offset에서 시작하는, length개의 코드 포인트 길이를 갖는 s의 부분 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT 'Täglich grüßt das Murmeltier.' AS str, substringUTF8(str, 9), substringUTF8(str, 9, 5)
Response
Täglich grüßt das Murmeltier.    grüßt das Murmeltier.    grüßt

toValidUTF8

도입 버전: v20.1.0 유효하지 않은 UTF-8 문자를 대체 문자 (U+FFFD)로 바꾸어 문자열을 올바른 UTF-8 인코딩으로 변환합니다. 유효하지 않은 문자가 여러 개 연속으로 발견되면 하나의 대체 문자로 합쳐집니다. 구문
toValidUTF8(s)
인수
  • s — String 데이터 타입 객체로 표현된 임의의 바이트 시퀀스입니다. String
반환 값 유효한 UTF-8 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT toValidUTF8('\\x61\\xF0\\x80\\x80\\x80b')
Response
c
┌─toValidUTF8('a����b')─┐
│ a�b                   │
└───────────────────────┘

trimBoth

도입 버전: v20.1.0 문자열의 앞부분과 뒷부분에서 지정된 문자를 제거합니다. 기본적으로 일반적인 공백(ASCII) 문자를 제거합니다. 구문
trimBoth(s[, trim_characters])
별칭: trim 인수
  • s — 양끝 문자를 제거할 String입니다. String
  • trim_characters — 선택 사항입니다. 제거할 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값 양쪽 끝에서 지정된 문자가 제거된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT trimBoth('$$ClickHouse$$', '$')
Response
┌─trimBoth('$$⋯se$$', '$')─┐
│ ClickHouse               │
└──────────────────────────┘

trimLeft

도입 버전: v20.1.0 문자열의 시작 부분에서 지정된 문자를 제거합니다. 기본적으로는 일반적인 공백(ASCII) 문자를 제거합니다. 구문
trimLeft(input[, trim_characters])
별칭: ltrim 인수
  • input — 트리밍할 문자열입니다. String
  • trim_characters — 선택 사항입니다. 트리밍할 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값 왼쪽에서 지정된 문자가 제거된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT trimLeft('ClickHouse', 'Click');
Response
┌─trimLeft('Cl⋯', 'Click')─┐
│ House                    │
└──────────────────────────┘

trimRight

도입 버전: v20.1.0 문자열의 끝에서 지정된 문자를 제거합니다. 기본적으로 일반적인 ASCII 공백 문자를 제거합니다. 구문
trimRight(s[, trim_characters])
별칭: rtrim 인수
  • s — 잘라낼 문자열입니다. String
  • trim_characters — 선택적으로 잘라낼 문자입니다. 지정하지 않으면 일반적인 공백 문자가 제거됩니다. String
반환 값 오른쪽 끝에서 지정된 문자가 제거된 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT trimRight('ClickHouse','House');
Response
┌─trimRight('C⋯', 'House')─┐
│ Click                    │
└──────────────────────────┘

tryBase32Decode

도입 버전: v25.6.0 문자열을 받아 Base32 인코딩 방식으로 디코딩합니다. 구문
tryBase32Decode(encoded)
인수
  • encoded — 디코드할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base32 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값 인수의 디코드된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryBase32Decode('IVXGG33EMVSA====');
Response
┌─tryBase32Decode('IVXGG33EMVSA====')─┐
│ Encoded                             │
└─────────────────────────────────────┘

tryBase58Decode

도입 버전: v22.10.0 base58Decode와 유사하지만, 오류가 발생하면 빈 문자열을 반환합니다. 구문
tryBase58Decode(encoded[, expected_size])
인수
  • encodedString 컬럼 또는 상수입니다. 문자열이 유효한 Base58 인코딩이 아니면, 오류 발생 시 빈 문자열을 반환합니다. String
  • expected_size — 선택 사항입니다. 바이트 단위의 예상 디코딩 크기입니다. 32 또는 64이면 최적화된 디코더를 사용하고, 그 밖의 값이면 일반 디코더를 사용합니다. UInt8, UInt16, UInt32, or UInt64
반환 값 인수의 디코딩된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryBase58Decode('3dc8KtHrwM') AS res, tryBase58Decode('invalid') AS res_invalid;
Response
┌─res─────┬─res_invalid─┐
│ Encoded │             │
└─────────┴─────────────┘

tryBase64Decode

도입 버전: v18.16.0 base64Decode와 유사하지만, 오류가 발생한 경우 빈 문자열을 반환합니다. 구문
tryBase64Decode(encoded)
인수
  • encoded — 디코딩할 String 컬럼 또는 상수입니다. 문자열이 유효한 Base64 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값 인수에서 디코딩된 값을 포함하는 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryBase64Decode('Y2xpY2tob3VzZQ==')
Response
┌─tryBase64Decode('Y2xpY2tob3VzZQ==')─┐
│ clickhouse                          │
└─────────────────────────────────────┘

tryBase64URLDecode

도입 버전: v18.16.0 base64URLDecode와 동일하지만, 오류가 발생한 경우에는 빈 문자열을 반환합니다. 구문
tryBase64URLDecode(encoded)
인수
  • encoded — 디코딩할 String 타입의 컬럼 또는 상수입니다. 문자열이 유효한 Base64 인코딩이 아니면 오류 발생 시 빈 문자열을 반환합니다. String
반환 값 인수에서 디코딩된 값을 담은 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')
Response
┌─tryBase64URLDecode('aHR0cHM6Ly9jbGlja2hvdXNlLmNvbQ')─┐
│ https://clickhouse.com                               │
└──────────────────────────────────────────────────────┘

tryIdnaEncode

도입 버전: v24.1.0 Internationalized Domain Names in Applications (IDNA) 메커니즘에 따라 도메인 이름의 유니코드(UTF-8) 표현인 ToUnicode 알고리즘 결과를 반환합니다. 오류가 발생하면 예외를 발생시키는 대신 빈 문자열을 반환합니다. 구문
tryIdnaEncode(s)
인수
  • s — 입력 문자열입니다. String
반환 값 입력 값의 IDNA 메커니즘에 따라 입력 문자열을 ASCII로 표현한 값을 반환합니다. 입력이 올바르지 않으면 빈 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryIdnaEncode('straße.münchen.de')
Response
┌─tryIdnaEncode('straße.münchen.de')──┐
│ xn--strae-oqa.xn--mnchen-3ya.de     │
└─────────────────────────────────────┘

tryPunycodeDecode

도입 버전: v24.1.0 punycodeDecode와 유사하지만, 유효한 Punycode 인코딩 문자열이 제공되지 않으면 빈 문자열을 반환합니다. 구문
tryPunycodeDecode(s)
인수
  • s — Punycode로 인코딩된 문자열입니다. String
반환 값 입력 값의 평문을 반환하며, 입력이 유효하지 않으면 빈 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT tryPunycodeDecode('Mnchen-3ya')
Response
┌─tryPunycodeDecode('Mnchen-3ya')─┐
│ München                         │
└─────────────────────────────────┘

upper

도입 버전: v1.1.0 문자열에 포함된 ASCII 라틴 문자를 대문자로 변환합니다. 구문
upper(s)
별칭: ucase 인수
  • s — 대문자로 변환할 문자열입니다. String
반환 값 s를 모두 대문자로 변환한 문자열을 반환합니다. String 예시 사용 예시
Query
SELECT upper('clickhouse')
Response
┌─upper('clickhouse')─┐
│ CLICKHOUSE          │
└─────────────────────┘

upperUTF8

도입 버전: v1.1.0 문자열이 유효한 UTF-8로 인코딩된 텍스트를 포함한다고 가정하고 문자열을 대문자로 변환합니다. 이 가정이 성립하지 않아도 예외는 발생하지 않으며, 결과는 정의되지 않습니다.
이 함수는 언어를 감지하지 않습니다. 예를 들어 터키어에서는 결과가 정확히 올바르지 않을 수 있습니다(i/İ 대 i/I). 코드 포인트의 대문자와 소문자에서 UTF-8 바이트 시퀀스의 길이가 다른 경우(ß 등), 해당 코드 포인트에 대한 결과가 올바르지 않을 수 있습니다.
구문
upperUTF8(s)
인수
  • s — 문자열 타입입니다. String
반환 값 String 데이터 타입의 값입니다. String 예시 사용 예시
Query
SELECT upperUTF8('München') AS Upperutf8
Response
┌─Upperutf8─┐
│ MÜNCHEN   │
└───────────┘
마지막 수정일 2026년 6월 10일