メインコンテンツへスキップ
文字列の検索および文字列の置換を行う関数については、別途説明しています。
以下のドキュメントは、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
  • cs の末尾になければ追加する文字。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)
引数
  • s — String 型の入力。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)
引数
  • encoded — String 型のカラムまたは定数。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 エンコードでない場合は、例外が発生します。 最適化された固定サイズのデコーダーを選択するために、省略可能な第2引数 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                                   │
└────────────────────────┴────────────────────────────────────────┘
パス区切り文字のない文字列
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 2つのバイト文字列間のハミング距離を計算します。 構文
byteHammingDistance(s1, s2)
別名: mismatches 引数
  • s1 — 1 つ目の入力文字列。String
  • s2 — 2 つ目の入力文字列。String
戻り値 2 つの文字列のハミング距離を返します。UInt64 使用例
Query
SELECT byteHammingDistance('karolin', 'kathrin')
Response
┌─byteHammingDistance('karolin', 'kathrin')─┐
│                                         3 │
└───────────────────────────────────────────┘

caseFoldUTF8

導入バージョン: v26.3.0 UTF-8文字列に Unicode のケースフォールディングを適用し、大文字と小文字を区別しない比較に適した、小文字化に近い正規化済みの形式に変換します。 標準の Unicode ケースフォールディングを適用します。ケースフォールディングの影響を受けない互換文字 (例: ローマ数字、丸付き数字) は保持されますが、 のような一部の合字は、Unicode のケースフォールディング自体によって展開されるため、引き続き分解される点に注意してください。 構文
caseFoldUTF8(str)
引数
  • str — UTF-8 でエンコードされた入力文字列。String
戻り値 ケースフォールディングされた UTF-8 文字列。String 基本的なケースフォールディング
Query
SELECT caseFoldUTF8('Straße')
Response
┌─caseFoldUTF8('Straße')─┐
│ strasse                 │
└─────────────────────────┘

compareSubstrings

導入バージョン: v25.2.0 2つの文字列を辞書式順序で比較します。 構文
compareSubstrings(s1, s2, s1_offset, s2_offset, num_bytes)
引数
  • s1 — 比較対象の1つ目の文字列です。String
  • s2 — 比較対象の2つ目の文字列です。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] の場合は 1Int8
使用例
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
戻り値 引数を連結して生成された文字列を返します。引数のいずれかが 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 ではない引数は、デフォルトのシリアライゼーションを使用して文字列に変換されます。パフォーマンスが低下するため、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 ではない引数は、デフォルトのシリアライゼーションを使用して文字列に変換されます。これはパフォーマンス低下につながるため、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 を超える基数では、10~35 の値を表すために文字 A-Z (大文字と小文字は区別されません) が使用されます。 この関数は 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
2進数を8進数に変換する
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
戻り値 エンコーディング from から to に変換された文字列 s を返します。String 使用例
Query
SELECT convertCharset('Café', 'UTF-8', 'ISO-8859-1');
Response
┌─convertChars⋯SO-8859-1')─┐
│ Caf�                     │
└──────────────────────────┘

damerauLevenshteinDistance

導入バージョン: v24.1.0 2 つのバイト文字列間の ダメラウ・レーベンシュタイン距離 を計算します。 構文
damerauLevenshteinDistance(s1, s2)
引数
  • s1 — 1 つ目の入力文字列。 String
  • s2 — 2 つ目の入力文字列。 String
戻り値 2 つの文字列間のダメラウ・レーベンシュタイン距離を返します。 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

導入バージョン: v21.2.0 文字列内の XML エンティティを対応する文字にデコードします。 構文
decodeXMLComponent(s)
引数
  • s — デコード対象の XML エンティティを含む文字列。String
戻り値 指定された文字列内の XML エンティティをデコードした結果を返します。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 2つのバイト文字列間の編集距離を計算します。 構文
editDistance(s1, s2)
別名: levenshteinDistance 引数
  • s1 — 1つ目の入力文字列。String
  • s2 — 2つ目の入力文字列。String
戻り値 2つの文字列間の編集距離を返します。UInt64 使用例
Query
SELECT editDistance('clickhouse', 'mouse')
Response
┌─editDistance('clickhouse', 'mouse')─┐
│                                   6 │
└─────────────────────────────────────┘

editDistanceUTF8

導入バージョン: v24.6.0 2つの UTF-8 文字列間の編集距離を計算します。 構文
editDistanceUTF8(s1, s2)
別名: levenshteinDistanceUTF8 引数
  • s1 — 1 番目の入力文字列。String
  • s2 — 2 番目の入力文字列。String
戻り値 2 つの UTF-8 文字列間の編集距離を返します。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
  • 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 使用例
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) に従い、ドメイン名の Unicode (UTF-8) 表現 (ToUnicode アルゴリズム) を返します。 エラーが発生した場合 (たとえば入力が無効な場合) は、入力文字列をそのまま返します。 大文字・小文字の正規化が行われるため、idnaEncode()idnaDecode() を繰り返し適用しても、必ずしも元の文字列に戻るとは限りません。 構文
idnaDecode(s)
引数
  • s — 入力文字列。String
戻り値 入力値の IDNA 方式に従って、入力文字列の Unicode (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 2 つのバイト文字列の Jaro 類似度 を計算します。 構文
jaroSimilarity(s1, s2)
引数
  • s1 — 1 つ目の入力文字列。String
  • s2 — 2 つ目の入力文字列。String
戻り値 2 つの文字列間の Jaro 類似度を返します。Float64 使用例
Query
SELECT jaroSimilarity('clickhouse', 'click')
Response
┌─jaroSimilarity('clickhouse', 'click')─┐
│                    0.8333333333333333 │
└───────────────────────────────────────┘

jaroWinklerSimilarity

導入バージョン: v24.1.0 2つのバイト文字列間の Jaro-Winkler similarity を計算します。 構文
jaroWinklerSimilarity(s1, s2)
引数
  • s1 — 1 つ目の入力文字列。String
  • s2 — 2 つ目の入力文字列。String
戻り値 2 つの文字列間の 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
正の offset
Query
SELECT left('Hello World', 5)
Response
Hello
負のオフセット
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 UTF-8文字列の左側を、結果の文字列が指定した長さに達するまで、空白または指定した文字列 (必要に応じて複数回) で埋めます。 文字列長をバイト単位で測定する 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
正のオフセット
Query
SELECT leftUTF8('Привет', 4)
Response
Прив
負のOFFSET
Query
SELECT leftUTF8('Привет', -4)
Response
Пр

lengthUTF8

導入バージョン: v1.1.0 文字列の長さを、バイト数や文字数ではなく、Unicode コードポイント数で返します。 文字列には有効な UTF-8 でエンコードされたテキストが含まれていることを前提としています。 この前提が満たされない場合でも例外はスローされず、結果は未定義です。 構文
lengthUTF8(s)
別名: CHARACTER_LENGTH, CHAR_LENGTH 引数
  • s — 有効な UTF-8 でエンコードされたテキストを含む文字列。String
戻り値 文字列 s の長さ (Unicode コードポイント単位) 。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 1つ目
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 NFC正規化形式に従って、UTF-8文字列を正規化します。 構文
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 正規化を適用した後にケースフォールディングを行うものです。 識別子の大文字と小文字を区別しないマッチングに役立ちます。 構文
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 表現を返します。 文字列は UTF-8 でエンコードされている必要があり、そうでない場合の動作は未定義です。 構文
punycodeEncode(s)
引数 戻り値 入力値のPunycode表現を返します。String 使用例 使用例
Query
SELECT punycodeEncode('München')
Response
┌─punycodeEncode('München')─┐
│ Mnchen-3ya                │
└───────────────────────────┘

regexpExtract

導入バージョン: v23.2.0 正規表現パターンに一致し、正規表現のグループ索引に対応する haystack 内の最初の文字列を抽出します。 構文
regexpExtract(haystack, pattern[, index])
別名: REGEXP_EXTRACT 引数
  • haystack — 正規表現パターンの照合対象となる String。String
  • pattern — String、正規表現。pattern には複数の正規表現グループを含めることができ、index は抽出する正規表現グループを示します。インデックス 0 は、正規表現全体との一致を意味します。const String
  • index — 省略可能。0 以上の整数で、デフォルト値は 1 です。抽出する正規表現グループを表します。(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 haystack 内で pattern に一致する occurrence 番目の出現位置を、バイト位置 position から検索して返します (1始まりのバイト位置) 。 return_option が 0 (デフォルト) の場合は、一致の先頭バイト位置を返します。1 の場合は、一致の直後の先頭バイト位置を返します。 subexpression が 0 より大きい場合は、一致全体ではなく、対応するキャプチャグループの位置を返します。 一致が見つからない場合、または要求したキャプチャグループが一致に含まれていない場合は 0 を返します。 PostgreSQL の regexp_instr との互換性のために提供されています (このエイリアスでも公開されています) 。位置はバイト単位で、他の 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 文字を NFD で分解し、結合文字のマーク (Unicode カテゴリ Mn) を除去した後に NFC で再構成することで、UTF-8 文字列からダイアクリティカルマーク (アクセント) を削除します。 構文
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 文字列中の Unicode コードポイント列を逆順にします。 文字列には有効な UTF-8 でエンコードされたテキストが含まれていることを前提としています。 この前提が満たされていない場合でも例外はスローされず、結果は未定義です。 構文
reverseUTF8(s)
引数
  • s — 有効な UTF-8 でエンコードされたテキストを含む String。String
戻り値 Unicode コードポイントの並びを逆順にした文字列。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
正のオフセット
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
正の offset
Query
SELECT rightUTF8('Привет', 4)
Response
ивет
負の OFFSET
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-gram の最小長です。デフォルト値および最小値は 3 です。UInt*
  • max_ngram_length — 任意。抽出する N-gram の最大長です。デフォルト値は 100 です。min_ngram_length 以上である必要があります。UInt*
  • min_cutoff_length — 任意。指定した場合、長さが min_cutoff_length 以上の N-gram のみを返します。デフォルト値は 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-gram の最小長です。デフォルト値および最小値は 3 です。UInt*
  • max_ngram_length — 任意。抽出する N-gram の最大長です。デフォルト値は 100 です。min_ngram_length 以上である必要があります。UInt*
  • min_cutoff_length — 任意。指定した場合、長さが min_cutoff_length 以上の N-gram のみを返します。デフォルト値は 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-gram の最小長です。デフォルト値および最小値は 3 です。UInt*
  • max_ngram_length — 任意。抽出される N-gram の最大長です。デフォルト値は 100 です。min_ngram_length 以上である必要があります。UInt*
  • min_cutoff_length — 任意。指定した場合、長さが min_cutoff_length 以上の N-gram のみが返されます。デフォルト値は 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-gram の最小長です。デフォルト値および最小値は 3 です。UInt*
  • max_ngram_length — 省略可能。抽出する N-gram の最大長です。デフォルト値は 100 です。min_ngram_length 以上である必要があります。UInt*
  • min_cutoff_length — 省略可能。指定した場合、長さが min_cutoff_length 以上の N-gram のみを返します。デフォルト値は 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 文字列が指定されたプレフィックスで始まるかどうかを確認します。 文字列には、有効な 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 2つのバイト列間のジャッカード類似度指数を計算します。 構文
stringJaccardIndex(s1, s2)
引数
  • s1 — 1つ目の入力文字列。String
  • s2 — 2つ目の入力文字列。String
戻り値 2つの文字列のジャッカード類似度指数を返します。Float64 使用例
Query
SELECT stringJaccardIndex('clickhouse', 'mouse')
Response
┌─stringJaccardIndex('clickhouse', 'mouse')─┐
│                                       0.4 │
└───────────────────────────────────────────┘

stringJaccardIndexUTF8

導入バージョン: v23.11.0 UTF8 でエンコードされた文字列に対する stringJaccardIndex と同様の関数です。 構文
stringJaccardIndexUTF8(s1, s2)
引数
  • s1 — 1つ目の入力UTF-8文字列。 String
  • s2 — 2つ目の入力UTF-8文字列。 String
戻り値 2つのUTF-8文字列のジャッカード類似度指数を返します。 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 から始まる、長さ length バイトの s の部分文字列を返します。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 Unicode コードポイント単位で、区切り文字 delimcount 回出現する位置より前にある s の部分文字列を返します。 文字列には有効な UTF-8 でエンコードされたテキストが含まれていることを前提とします。 この前提が満たされない場合でも、例外はスローされず、結果は未定義です。 構文
substringIndexUTF8(s, delim, count)
引数
  • s — 部分文字列を抽出する対象の文字列です。String
  • delim — 分割に使用する文字です。String
  • count — 部分文字列を抽出する前に数える区切り文字の出現回数です。count が正の場合は、最後の区切り文字 (左から数える) より左側のすべてが返されます。count が負の場合は、最後の区切り文字 (右から数える) より右側のすべてが返されます。UInt または Int
戻り値 delimcount 回出現する位置より前の s の部分文字列を返します。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 エンコーディングに変換します。 不正な文字が複数連続している場合は、1 つの置換文字にまとめられます。 構文
toValidUTF8(s)
引数
  • sString データ型のオブジェクトとして表される任意のバイト列。String
戻り値 有効な UTF-8 文字列を返します。String 使用例
Query
SELECT toValidUTF8('\\x61\\xF0\\x80\\x80\\x80b')
Response
c
┌─toValidUTF8('a����b')─┐
│ a�b                   │
└───────────────────────┘

trimBoth

導入バージョン: v20.1.0 文字列の先頭と末尾から、指定した文字を取り除きます。 デフォルトでは、一般的な空白文字 (ASCII) を取り除きます。 Syntax
trimBoth(s[, trim_characters])
別名: trim 引数
  • s — トリムする文字列。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])
引数
  • encoded — String型のカラムまたは定数。文字列が有効な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) の仕組みに従い、ドメイン名の Unicode (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)
引数 戻り値 String型の値。String 使用例
Query
SELECT upperUTF8('München') AS Upperutf8
Response
┌─Upperutf8─┐
│ MÜNCHEN   │
└───────────┘
最終更新日 2026年6月10日