文字列を扱う関数
文字列の検索および置換に関する関数は、別セクションで説明しています。
以下の内容は、system.functions システムテーブルから自動生成されています。
CRC32
導入バージョン: v20.1
CRC-32-IEEE 802.3 の多項式と初期値 0xffffffff(zlib による実装)を使用して、文字列の CRC32 チェックサムを計算します。
構文
引数
s— CRC32 を計算する文字列。String
戻り値
文字列の CRC32 チェックサムを返します。UInt32
例
使用例
CRC32IEEE
導入バージョン: v20.1
CRC-32-IEEE 802.3 多項式を使用して、文字列の CRC32 チェックサムを計算します。
構文
引数
s— CRC32 を計算する文字列。String
戻り値
文字列の CRC32 チェックサムを返します。UInt32
例
使用例
CRC64
導入バージョン: v20.1
CRC-64-ECMA多項式を使用して文字列のCRC64チェックサムを計算します。
構文
引数
s— CRC64 を計算する対象の文字列。String
戻り値
文字列の CRC64 チェックサムを返します。UInt64
例
使用例
appendTrailingCharIfAbsent
導入: v1.1
文字列 s が空でなく、末尾が文字 c で終わっていない場合に、s の末尾に文字 c を付加します。
構文
引数
戻り値
s が c で終わっていない場合、末尾に文字 c を追加した文字列を返します。String
例
使用例
ascii
導入バージョン: v22.11
文字列 s の先頭の1文字の ASCII コードポイント値を Int32 として返します。
構文
引数
s— 文字列型の入力値。String
返される値
先頭文字の ASCII コードポイントを返します。s が空の場合、結果は 0 です。先頭文字が ASCII 文字ではない、または UTF-16 の Latin-1 補助範囲に含まれない場合、結果は未定義です。Int32
例
使用例
base32Decode
導入バージョン: v25.6
Base32(RFC 4648)でエンコードされた文字列をデコードします。 文字列が有効な Base32 で正しくエンコードされていない場合は、例外がスローされます。
構文
引数
encoded— 文字列型の列または定数。String
戻り値
引数をデコードした値を含む文字列を返します。String
例
使用例
base32Encode
導入バージョン: v25.6
文字列を Base32 でエンコードします。
構文
引数
plaintext— 符号化するプレーンテキスト。String
返り値
引数を符号化した値を含む文字列を返します。String または FixedString
例
使用例
base58Decode
導入バージョン: v22.7
Base58 でエンコードされた文字列をデコードします。 文字列が有効な Base58 エンコード文字列でない場合は、例外がスローされます。
構文
引数
encoded— デコードする文字列型の列または定数。String
戻り値
引数のデコードされた値を含む文字列を返します。String
例
使用例
base58Encode
導入バージョン: v22.7
文字列を Base58 エンコーディングでエンコードします。
構文
引数
plaintext— エンコードするプレーンテキスト。String
戻り値
引数のエンコードされた値を含む文字列を返します。String
例
使用例
base64Decode
導入バージョン: v18.16
Base64 表現の文字列を、RFC 4648 に従ってデコードします。 エラーが発生した場合は例外をスローします。
構文
エイリアス: FROM_BASE64
引数
encoded— デコード対象の文字列型カラムまたは定数。文字列が有効な Base64 文字列でない場合、例外がスローされます。String
返される値
デコードされた文字列を返します。 String
例
使用例
base64Encode
導入バージョン: v18.16
RFC 4648 に準拠した Base64 形式で文字列をエンコードします。
構文
別名: TO_BASE64
引数
plaintext— デコードするプレーンテキストのカラムまたは定数。String
戻り値
引数の値をエンコードした文字列を返します。String
例
使用例
base64URLDecode
導入バージョン: v24.6
RFC 4648 に従い、URL セーフなアルファベットを使用する Base64 表現でエンコードされた文字列をデコードします。 エラーが発生した場合には例外をスローします。
構文
引数
encoded— エンコード対象の文字列カラムまたは定数。文字列が有効な Base64 でエンコードされたものでない場合は、例外がスローされます。String
返される値
引数をデコードした値を含む文字列を返します。 String
例
使用例
base64URLEncode
導入: v18.16
URL セーフなアルファベットを使用して、文字列を Base64(RFC 4648)表現でエンコードします。
構文
引数
plaintext— エンコードするプレーンテキスト列または定数。String
返される値
引数をエンコードした値を含む文字列を返します。String
例
使用例
basename
導入バージョン: v20.1
文字列内で最後に現れるスラッシュまたはバックスラッシュ以降の部分を抽出します。 この関数は、パスからファイル名を抽出する際によく使用されます。
構文
引数
expr— 文字列表現。バックスラッシュはエスケープする必要があります。String
戻り値
入力文字列内で最後に現れるスラッシュまたはバックスラッシュ以降の部分文字列を返します。入力文字列がスラッシュまたはバックスラッシュで終わる場合は、空文字列を返します。スラッシュやバックスラッシュが含まれていない場合は、元の文字列を返します。String
例
Unix パスからファイル名を抽出する
Windows のパスからファイル名を抽出
パス区切りを含まない文字列
byteHammingDistance
導入バージョン: v23.9
2つのバイト文字列間のハミング距離を計算します。
構文
別名: mismatches
引数
戻り値
2つの文字列間のハミング距離を返します。UInt64
例
使用例
compareSubstrings
導入バージョン: v25.2
2つの文字列を辞書順で比較します。
構文
引数
s1— 比較する1番目の文字列。Strings2— 比較する2番目の文字列。Strings1_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
例
使用例
concat
導入バージョン: v1.1
指定された引数を連結します。
String または FixedString 型以外の引数は、既定のシリアライズ方式を用いて文字列に変換されます。
これによりパフォーマンスが低下するため、String / FixedString 以外の引数を使用することは推奨されません。
構文
引数
s1, s2, ...— 任意の型の値を任意の数だけ指定できます。Any
戻り値
引数を連結して生成された String を返します。いずれかの引数が NULL の場合、関数は NULL を返します。引数が 1 つもない場合は、空文字列を返します。Nullable(String)
例
文字列の連結
数値の連結
concatAssumeInjective
導入: v1.1
concat と同様ですが、concat(s1, s2, ...) → sn が単射であると仮定します。
すなわち、異なる引数に対して常に異なる結果を返すとみなします。
GROUP BY の最適化に利用できます。
構文
引数
s1, s2, ...— 任意の型の値を任意の数だけ指定できます。StringまたはFixedString
戻り値
引数を連結して作成された文字列を返します。いずれかの引数の値が NULL の場合、関数は NULL を返します。引数が渡されない場合は空文字列を返します。戻り値の型は String です。
例
GROUP BY の最適化
concatWithSeparator
導入バージョン: v22.12
指定されたセパレータで区切って文字列を連結します。
構文
別名: concat_ws
引数
sep— 使用する区切り文字列。const Stringまたはconst FixedStringexp1, exp2, ...— 連結する式。StringまたはFixedString型でない引数は、デフォルトのシリアライゼーションを用いて文字列に変換されます。これはパフォーマンスが低下するため、String/FixedString以外の引数の使用は推奨されません。Any
戻り値
引数を連結して作成された String を返します。引数のいずれかの値が NULL の場合、関数は NULL を返します。String
例
使用例
concatWithSeparatorAssumeInjective
導入バージョン: v22.12
concatWithSeparator と似ていますが、concatWithSeparator(sep[,exp1, exp2, ... ]) → result が単射であると仮定します。
関数は、異なる引数に対して常に異なる結果を返す場合に単射と呼ばれます。
GROUP BY の最適化に使用できます。
構文
引数
sep— 使用する区切り文字。const Stringまたはconst FixedStringexp1, exp2, ...— 連結する式。型がStringまたはFixedStringでない引数は、デフォルトのシリアル化によって文字列に変換されます。これによりパフォーマンスが低下するため、String / FixedString 以外の引数の使用は推奨されません。StringまたはFixedString
返される値
引数を連結して作成された String を返します。いずれかの引数の値が NULL の場合、関数は NULL を返します。String
例
使用例
conv
導入バージョン: v1.1
異なる基数間で数値を変換します。
数値をある基数から別の基数へ変換します。2 から 36 までの基数をサポートします。 10 より大きい基数では、桁 10~35 を表すために文字 A~Z(大文字・小文字は区別しない)が使用されます。
この関数は MySQL の CONV() 関数と互換性があります。
構文
引数
number— 変換する数値。文字列型または数値型を指定できます。from_base— 元の基数 (2〜36)。整数でなければなりません。to_base— 変換先の基数 (2〜36)。整数でなければなりません。
戻り値
変換先の基数で表現された数値の文字列表現。
例
10進数を2進数に変換
16進数を10進数に変換
負数での変換
2 進数を 8 進数に変換する
convertCharset
導入バージョン: v1.1
文字列 s をエンコーディング from から to へ変換した結果を返します。
構文
引数
戻り値
文字エンコーディング from から to へ変換した文字列 s を返します。String
例
使用例
damerauLevenshteinDistance
導入バージョン: v24.1
2 つのバイト列間の Damerau-Levenshtein 距離 を計算します。
構文
引数
戻り値
2 つの文字列間の Damerau-Levenshtein 距離を返します。UInt64
例
使用例
decodeHTMLComponent
導入バージョン: v23.9
文字列内の HTML エンティティを対応する文字にデコードします。
構文
引数
s— デコード対象の HTML エンティティを含む文字列。String
返される値
HTML エンティティをデコードした文字列を返します。String
例
使用例
decodeXMLComponent
導入バージョン: v21.2
文字列内の XML エンティティを対応する文字にデコードします。
構文
引数
s— デコードする XML エンティティを含む文字列。String
戻り値
指定された文字列内の XML エンティティをデコードした文字列を返します。String
例
使用例
editDistance
導入バージョン: v23.9
2つのバイト文字列間の編集距離を計算します。
構文
エイリアス: levenshteinDistance
引数
戻り値
2つの文字列間の編集距離を返します。UInt64
例
使用例
editDistanceUTF8
導入バージョン: v24.6
2つの UTF8 文字列間の編集距離を計算します。
構文
別名: levenshteinDistanceUTF8
引数
返り値
2 つの UTF-8 文字列間の編集距離を返します。UInt64
例
使用例
encodeXMLComponent
導入バージョン: v21.1
文字列を XML のテキストノードや属性値として埋め込むために、特殊文字をエスケープします。
構文
引数
s— エスケープする文字列。String
戻り値
エスケープされた文字列を返します。String
例
使用例
endsWith
導入: v1.1
文字列が指定された接尾辞で終わっているかどうかをチェックします。
構文
引数
戻り値
s が suffix で終わる場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
endsWithCaseInsensitive
導入バージョン: v25.9
文字列が、指定された大文字・小文字を区別しない接尾辞で終わっているかどうかを判定します。
構文
引数
戻り値
s が大文字・小文字を区別せずに見て suffix で終わっていれば 1 を返し、そうでなければ 0 を返します。UInt8
例
使用例
endsWithCaseInsensitiveUTF8
導入バージョン: v25.9
文字列 s が、大文字・小文字を区別せずに suffix で終わるかどうかを返します。
文字列は有効な UTF-8 でエンコードされたテキストであると仮定します。
この前提が満たされない場合でも、例外はスローされず、結果は未定義になります。
構文
引数
返り値
s が大文字小文字を区別せずに suffix で終わる場合は 1 を返し、そうでない場合は 0 を返します。UInt8
例
使用例
endsWithUTF8
導入されたバージョン: v23.8
文字列 s が suffix で終わるかどうかを返します。
文字列が有効な UTF-8 でエンコードされたテキストであることを前提とします。
この前提が満たされない場合でも、例外はスローされず、結果は未定義です。
構文
引数
戻り値
s が suffix で終わる場合は 1 を、それ以外の場合は 0 を返します。UInt8
例
使用例
extractTextFromHTML
導入バージョン: v21.3
HTML または XHTML からテキストコンテンツを抽出します。
この関数は HTML タグ、コメント、script/style 要素を削除し、テキストコンテンツのみを残します。次の処理を行います:
- すべての HTML/XML タグの削除
- コメント(
<!-- -->)の削除 - script および style 要素とその内容の削除
- CDATA セクションの処理(内容をそのままコピー)
- 空白文字の適切な処理と正規化
注意: HTML エンティティはデコードされないため、必要に応じて別の関数で処理する必要があります。
構文
引数
html— テキストを抽出する対象の HTML コンテンツを含む文字列。String
返り値
空白が正規化された抽出済みテキストコンテンツを返します。String
例
使用例
firstLine
導入バージョン: v23.7
複数行文字列の最初の行を返します。
構文
引数
s— 入力文字列。String
戻り値
入力文字列の先頭行、または行区切りがない場合は文字列全体を返します。String
例
使用例
idnaDecode
導入: v24.1
Internationalized Domain Names in Applications(IDNA)メカニズムに従い、ドメイン名の Unicode(UTF-8)表現(ToUnicode アルゴリズム)を返します。
エラーが発生した場合(例: 入力が不正な場合)は、入力文字列をそのまま返します。
大文字・小文字の正規化が行われるため、idnaEncode() と idnaDecode() を繰り返し適用しても、必ずしも元の文字列が得られるとは限らない点に注意してください。
構文
引数
s— 入力文字列。String
戻り値
IDNA メカニズムに従い、入力文字列を Unicode (UTF-8) 表現に変換した文字列を返します。String
例
使用例
idnaEncode
導入バージョン: v24.1
Internationalized Domain Names in Applications(IDNA)メカニズムに従い、ドメイン名の ASCII 表現(ToASCII アルゴリズム)を返します。 入力文字列は UTF でエンコードされており、ASCII 文字列に変換可能である必要があります。変換できない場合は例外がスローされます。
パーセントデコードや、タブ・スペース・制御文字のトリミングは行われません。
構文
引数
s— 入力文字列。String
戻り値
IDNA メカニズムに従い、入力文字列の ASCII 表現を返します。String
例
使用例
initcap
導入バージョン: v23.7
各単語の最初の文字を大文字にし、残りを小文字に変換します。 ここでいう単語とは、英数字が連続した部分列であり、非英数字によって区切られたシーケンスを指します。
initcap は各単語の最初の文字だけを大文字に変換するため、アポストロフィや大文字を含む単語では、予期しない動作が発生する場合があります。
これは既知の動作であり、現時点では修正の予定はありません。
構文
引数
s— 入力文字列。String
戻り値
各単語の先頭文字を大文字に変換した s を返します。String
例
使用例
アポストロフィや大文字を含む単語に関する既知の挙動の例
initcapUTF8
導入バージョン: v23.7
initcap と同様に、initcapUTF8 は各単語の最初の文字を大文字にし、それ以外を小文字に変換します。
文字列には有効な UTF-8 エンコードのテキストが含まれていることを前提とします。
この前提が満たされない場合でも、例外はスローされず、結果は未定義です。
この関数は言語を判別しません。たとえばトルコ語では、結果が厳密には正しくない場合があります(i/İ と i/I)。 あるコードポイントにおいて、大文字と小文字で UTF-8 のバイト列の長さが異なる場合、そのコードポイントに対する結果は正しくない可能性があります。
構文
引数
s— 入力文字列。String
戻り値
各単語の先頭の文字を大文字に変換した s を返します。String
例
使用例
isValidASCII
導入バージョン: v25.9
入力の String または FixedString が ASCII バイト (0x00–0x7F) のみを含む場合は 1 を返し、それ以外の場合は 0 を返します。
構文
別名: isASCII
引数
- なし。
戻り値
例
isValidASCII
isValidUTF8
導入: v20.1
バイト列が有効な UTF-8 でエンコードされたテキストかどうかを検証します。
構文
引数
s— UTF-8 エンコードが有効かどうかを検査する文字列。String
戻り値
バイト列が有効な UTF-8 でエンコードされたテキストを構成していれば 1 を返し、そうでなければ 0 を返します。UInt8
例
使用例
jaroSimilarity
導入バージョン: v24.1
2 つのバイト文字列間の Jaro 類似度 を計算します。
構文
引数
戻り値
2 つの文字列の Jaro 類似度を返します。Float64
例
使用例
jaroWinklerSimilarity
導入バージョン: v24.1
2つのバイト列間の Jaro-Winkler 類似度 を計算します。
構文
引数
戻り値
2 つの文字列間の Jaro-Winkler 類似度を返します。Float64
例
使用例
left
導入バージョン: v22.1
文字列 s の左端から、指定した offset 文字を取り出した部分文字列を返します。
構文
引数
s— 部分文字列を抽出する元の文字列。StringまたはFixedStringoffset— オフセットのバイト数。(U)Int*
戻り値
次を返します:
- 正の
offsetの場合、文字列の先頭から開始し、offsetバイト分のsの部分文字列。 - 負の
offsetの場合、文字列の先頭から開始し、length(s) - |offset|バイト分のsの部分文字列。 lengthが0の場合は空文字列。String
例
正のオフセット
負のオフセット
leftPad
導入バージョン: v21.8
指定された length に達するまで、文字列の左側をスペースまたは指定した文字列で(必要に応じて複数回)埋めます。
構文
別名: lpad
引数
string— パディングを行う対象の入力文字列。Stringlength— 結果となる文字列の長さ。この値が入力文字列の長さより小さい場合、入力文字列はlength文字に切り詰められます。(U)Int*pad_string— 省略可。入力文字列を埋めるために使用する文字列。指定されていない場合、入力文字列はスペースでパディングされます。String
戻り値
指定した長さになるよう左側がパディングされた文字列を返します。String
例
使用例
leftPadUTF8
導入バージョン: v21.8
UTF8 文字列の左側を、スペースまたは指定した文字列(必要に応じて複数回)で埋めて、結果の文字列が指定された長さに達するまでパディングします。
文字列長をバイト数で測定する leftPad とは異なり、文字列長はコードポイント数で測定されます。
構文
引数
string— パディングされる入力文字列。Stringlength— 結果の文字列の長さ。値が入力文字列の長さより小さい場合、入力文字列はlength文字に切り詰められます。(U)Int*pad_string— 省略可能。入力文字列をパディングする際に使用する文字列。指定されていない場合、入力文字列はスペースでパディングされます。String
返り値
指定された長さの、左側がパディングされた文字列を返します。String
例
使用例
leftUTF8
導入: v22.1
UTF-8 でエンコードされた文字列 s について、左側からの offset 文字目を開始位置とする部分文字列を返します。
構文
引数
s— 部分文字列を計算する対象の UTF-8 エンコードされた文字列。StringまたはFixedStringoffset— オフセットのバイト数。(U)Int*
戻り値
返される値:
- 正の
offsetの場合、文字列の左端から開始し、offsetバイト分を含むsの部分文字列。 - 負の
offsetの場合、文字列の左端から開始し、length(s) - |offset|バイト分を含むsの部分文字列。 lengthが 0 の場合は空文字列。
String
例
正の offset
負のオフセット
lengthUTF8
導入バージョン: v1.1
文字列の長さを、バイト数や文字数ではなく Unicode のコードポイント数で返します。 文字列は有効な UTF-8 でエンコードされたテキストであることを前提とします。 この前提が満たされない場合でも例外はスローされず、結果は未定義となります。
構文
別名: CHAR_LENGTH, CHARACTER_LENGTH
引数
s— 有効な UTF-8 でエンコードされたテキストを含む文字列。String
返される値
文字列 s の Unicode コードポイント数。UInt64
例
使用例
lower
導入バージョン: v1.1
ASCII 文字列を小文字に変換します。
構文
別名: lcase
引数
s— 小文字に変換する対象の文字列。String
戻り値
s を小文字に変換した文字列を返します。String
例
使用例
lowerUTF8
導入バージョン: v1.1
文字列が有効な UTF-8 でエンコードされたテキストであると想定して、その文字列を小文字に変換します。この前提が満たされていない場合でも、例外はスローされず、結果は未定義になります。
構文
引数
input— 小文字に変換する入力文字列。String
戻り値
小文字に変換された文字列を返します。String
例
最初の例
normalizeUTF8NFC
導入バージョン: v21.11
UTF-8 文字列を 正規化形式 NFC に従って正規化します。
構文
引数
str— UTF-8 でエンコードされた入力文字列。String
返される値
UTF-8 文字列の NFC 正規化形式を返します。String
例
使用例
normalizeUTF8NFD
導入バージョン: v21.11
UTF-8 文字列をNFD 正規化形式に従って正規化します。
構文
引数
str— UTF-8 でエンコードされた入力文字列。String
戻り値
UTF-8 文字列を NFD 正規化形式にしたものを返します。String
例
使用例
normalizeUTF8NFKC
導入バージョン: v21.11
正規化形式 NFKC に従って UTF-8 文字列を正規化します。
構文
引数
str— UTF-8 でエンコードされた入力文字列。String
戻り値
UTF-8 文字列を NFKC 正規化形式にしたものを返します。String
例
使用例
normalizeUTF8NFKD
導入バージョン: v21.11
正規化形式 NFKD に従って UTF-8 文字列を正規化します。
構文
引数
str— UTF-8 エンコードされた入力文字列。String
戻り値
UTF-8 文字列を NFKD 形式に正規化したものを返します。String
例
使用例
punycodeDecode
導入バージョン: v24.1
Punycode でエンコードされた文字列を UTF-8 にデコードしたプレーンテキストを返します。 有効な Punycode エンコード文字列が指定されない場合は、例外をスローします。
構文
引数
s— Punycode でエンコードされた文字列。String
戻り値
入力値のプレーンテキスト表現を返します。String
例
使用例
punycodeEncode
導入バージョン: v24.1
文字列の Punycode 表現を返します。 文字列は UTF-8 でエンコードされたものである必要があり、そうでない場合の動作は未定義です。
構文
引数
s— 入力値。String
戻り値
入力値を Punycode 表現で返します。String
例
使用例
regexpExtract
導入バージョン: v23.2
haystack 内で、正規表現パターンにマッチし、指定されたグループ番号に対応する、最初に一致した文字列を抽出します。
構文
別名: REGEXP_EXTRACT
引数
haystack— 正規表現パターンとマッチさせる文字列。Stringpattern— 正規表現文字列。patternは複数の正規表現グループを含むことができ、indexはどの正規表現グループを抽出するかを示します。インデックス 0 は正規表現全体へのマッチを意味します。const Stringindex— 省略可能。デフォルト値 1 の 0 以上の整数。どの正規表現グループを抽出するかを表します。(U)Int*
返される値
マッチした文字列を返します。String
例
使用例
repeat
導入: v20.1
指定された回数だけ文字列を繰り返して連結します。
構文
引数
返される値
文字列 s を n 回繰り返した文字列。n が負の値の場合、この関数は空文字列を返します。String
例
使用例
reverseUTF8
導入バージョン: v1.1
文字列内の Unicode コードポイント列を逆順に並べ替えます。 文字列が有効な UTF-8 でエンコードされたテキストであることを前提とします。 この前提が成り立たない場合でも例外はスローされず、結果は未定義です。
構文
引数
s— 有効な UTF-8 でエンコードされたテキストを含む文字列。String
戻り値
Unicode コードポイント列の順序を反転した文字列を返します。String
例
使用例
right
導入バージョン: v22.1
文字列 s の末尾から指定した offset 文字の部分文字列を返します。
構文
引数
s— 部分文字列を取得する対象の文字列。StringまたはFixedStringoffset— オフセットとなるバイト数。(U)Int*
返り値
返り値:
- 正の
offsetの場合、文字列の右端からoffsetバイト分を切り出したsの部分文字列。 - 負の
offsetの場合、文字列の右端からlength(s) - |offset|バイト分を切り出したsの部分文字列。 lengthが0の場合は空文字列。String
例
正の offset
負のオフセット
rightPad
導入バージョン: v21.8
文字列の右側をスペースまたは指定した文字列(必要に応じて繰り返し)で埋め、結果の文字列が指定された length に達するまでパディングします。
構文
エイリアス: rpad
引数
string— パディング対象の入力文字列。Stringlength— 結果となる文字列の長さ。この値が入力文字列の長さより小さい場合、入力文字列はlength文字に切り詰められます。(U)Int*pad_string— オプション。入力文字列をパディングする際に使用する文字列。指定しない場合、入力文字列は空白文字で埋められます。String
戻り値
指定した長さになるように右側を埋めた文字列を返します。 String
例
使用例
rightPadUTF8
導入: v21.8
文字列の右側を、結果の文字列が指定された長さに達するまで、スペースまたは指定した文字列(必要に応じて複数回)で埋めます。
文字列の長さをバイト数で測定する rightPad とは異なり、この関数では文字列の長さはコードポイント数で測定されます。
構文
引数
string— パディング対象の入力文字列。Stringlength— 結果となる文字列の長さ。この値が入力文字列の長さより小さい場合、入力文字列はlength文字に切り詰められます。(U)Int*pad_string— オプション。入力文字列をパディングする際に用いる文字列。指定されていない場合、入力文字列はスペースでパディングされます。String
返される値
指定された長さになるように右側をパディングした文字列を返します。String
例
使用例
rightUTF8
導入バージョン: v22.1
UTF-8 エンコードされた文字列 s に対して、右端から offset 文字の部分文字列を返します。
構文
引数
s— 部分文字列を計算する対象の UTF-8 エンコードされた文字列。StringまたはFixedStringoffset— オフセットを表すバイト数。(U)Int*
戻り値
返される値:
- 正の
offsetの場合、文字列の右端から始まる、長さoffsetバイトのsの部分文字列。 - 負の
offsetの場合、文字列の右端から始まる、長さlength(s) - |offset|バイトのsの部分文字列。 lengthが0の場合は空文字列。
戻り値の型:String
例
正のオフセット
負のオフセット
soundex
導入バージョン: v23.4
文字列の Soundex コード を返します。
構文
引数
s— 入力文字列。String
戻り値
入力文字列の Soundex コードを返します。String
例
使用例
space
導入バージョン: v23.5
指定された回数だけ空白文字( )を連結した文字列を返します。
構文
引数
n— スペースを繰り返す回数。(U)Int*
戻り値
スペースを n 回繰り返した文字列を返します。n <= 0 の場合、関数は空文字列を返します。String
例
使用例
sparseGrams
導入バージョン: v25.5
長さが少なくとも n であり、かつ次の条件を満たす、指定された文字列中のすべての部分文字列を検出します。
その部分文字列の両端に位置する (n-1)-グラムのハッシュ値が、
その部分文字列の内部に含まれるどの (n-1)-グラムのハッシュ値よりも大きい場合にのみ対象とします。
ハッシュ関数として CRC32 を使用します。
構文
引数
s— 入力文字列。Stringmin_ngram_length— 省略可能。抽出される ngram の最小長。既定値かつ最小値は 3。UInt*max_ngram_length— 省略可能。抽出される ngram の最大長。既定値は 100。min_ngram_length以上である必要がある。UInt*
戻り値
選択された部分文字列の配列を返します。Array(String)
例
使用例
sparseGramsHashes
導入バージョン: v25.5
与えられた文字列について、長さが少なくとも n のすべての部分文字列のハッシュ値を求めます。
このとき、その部分文字列の両端にある (n-1)-gram のハッシュ値が、
その部分文字列内に含まれるいずれの (n-1)-gram のハッシュ値よりも厳密に大きいもののみを対象とします。
ハッシュ関数として CRC32 を使用します。
構文
引数
s— 入力文字列。Stringmin_ngram_length— 省略可能。抽出される n-gram の最小長。既定値かつ最小値は 3。UInt*max_ngram_length— 省略可能。抽出される n-gram の最大長。既定値は 100。min_ngram_length以上である必要がある。UInt*
戻り値
選択された部分文字列の CRC32 ハッシュ値を要素とする配列を返す。Array(UInt32)
例
使用例
sparseGramsHashesUTF8
導入バージョン: v25.5
指定された UTF-8 文字列について、長さが少なくとも n のすべての部分文字列のハッシュを求めます。このとき、その部分文字列の両端にある (n-1)-gram のハッシュ値が、その部分文字列内部に含まれるどの (n-1)-gram のハッシュ値よりも厳密に大きいものだけを対象とします。
入力は UTF-8 文字列であることを前提としており、不正な UTF-8 シーケンスが含まれている場合は例外をスローします。
ハッシュ関数として CRC32 を使用します。
構文
引数
s— 入力文字列。Stringmin_ngram_length— 省略可能。抽出される ngram の最小長。デフォルト値かつ最小値は 3。UInt*max_ngram_length— 省略可能。抽出される ngram の最大長。デフォルト値は 100。min_ngram_length以上でなければならない。UInt*
戻り値
抽出された UTF-8 部分文字列の CRC32 ハッシュの配列を返します。Array(UInt32)
例
使用例
sparseGramsUTF8
導入バージョン: v25.5
与えられた UTF-8 文字列について、長さが少なくとも n であり、かつその部分文字列の両端にある (n-1)-gram のハッシュ値が、その部分文字列内のどの (n-1)-gram のハッシュ値よりも厳密に大きいような、すべての部分文字列を求めます。
UTF-8 文字列を引数に取り、無効な UTF-8 シーケンスが含まれている場合は例外をスローします。
ハッシュ関数として CRC32 を使用します。
構文
引数
s— 入力文字列。Stringmin_ngram_length— 省略可能。抽出される n-gram の長さの最小値。デフォルトかつ最小値は 3。UInt*max_ngram_length— 省略可能。抽出される n-gram の長さの最大値。デフォルト値は 100。min_ngram_length以上である必要がある。UInt*
返り値
選択された UTF-8 部分文字列の配列を返す。Array(String)
例
使用例
startsWith
導入バージョン: v1.1
文字列が指定した文字列で始まるかどうかを判定します。
構文
引数
返される値
s が prefix で始まる場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
startsWithCaseInsensitive
導入バージョン: v25.9
文字列が、指定された文字列で大文字小文字を区別せずに始まるかどうかを判定します。
構文
引数
返される値
s が大文字小文字を区別せずに prefix で始まる場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
startsWithCaseInsensitiveUTF8
導入バージョン: v25.9
文字列が、指定された大文字小文字を区別しない接頭辞で始まるかどうかを判定します。 文字列には、有効な UTF-8 でエンコードされたテキストが含まれていることを前提とします。 この前提が満たされない場合でも、例外はスローされず、結果は未定義です。
構文
引数
戻り値
s が大文字・小文字を区別せずに prefix で始まる場合は 1 を返し、それ以外の場合は 0 を返します。UInt8
例
使用例
startsWithUTF8
導入バージョン: v23.8
文字列が指定されたプレフィックスで始まるかどうかをチェックします。 文字列が有効な UTF-8 でエンコードされたテキストであることを前提とします。 この前提が満たされない場合でも、例外はスローされず、結果は未定義です。
構文
引数
戻り値
s が prefix で始まる場合は 1、それ以外は 0 を返します。UInt8
例
使用例
stringBytesEntropy
導入バージョン: v25.6
文字列内のバイト分布に対するシャノンのエントロピーを計算します。
構文
引数
s— 解析する文字列。String
戻り値
文字列中のバイト分布に対するシャノンエントロピーを返します。Float64
例
使用例
stringBytesUniq
導入されたバージョン: v25.6
文字列内の異なるバイト数をカウントします。
構文
引数
s— 解析する文字列。String
戻り値
文字列内の相異なるバイト数を返します。UInt16
例
使用例
stringJaccardIndex
導入バージョン: v23.11
2 つのバイト列間の Jaccard 係数 を計算します。
構文
引数
戻り値
2つの文字列間の Jaccard 類似度インデックスを返します。Float64
例
使用例
stringJaccardIndexUTF8
導入バージョン: v23.11
stringJaccardIndex と同様ですが、UTF-8 でエンコードされた文字列を対象とします。
構文
引数
戻り値
2 つの UTF8 文字列間の Jaccard 類似度インデックスを返します。Float64
例
使用例
substring
導入バージョン: v1.1
文字列 s のうち、指定されたバイトインデックス offset から始まる部分文字列を返します。
バイトのカウントは 1 から始まり、次の仕様に従います:
offsetが0の場合、空文字列が返されます。offsetが負の場合、部分文字列は先頭からではなく、文字列の末尾からpos文字分手前の位置から始まります。
オプション引数 length は、返される部分文字列が持つことのできる最大バイト数を指定します。
構文
別名: byteSlice, mid, substr
引数
s— 部分文字列を取得する元の文字列。StringまたはFixedStringまたはEnumoffset—sの中で部分文字列を開始する位置。(U)Int*length— 省略可能。部分文字列の最大バイト長。(U)Int*
戻り値
offset で指定した位置から length バイト分の s の部分文字列を返します。String
例
基本的な使い方
substringIndex
導入バージョン: v23.7
Spark や MySQL と同様に、区切り文字 delim が count 回現れるより前の部分文字列を、文字列 s から返します。
構文
別名: SUBSTRING_INDEX
引数
s— 部分文字列を抽出する対象の文字列。Stringdelim— 分割に使用する区切り文字。Stringcount— 部分文字列を抽出する前にカウントする区切り文字の出現回数。countが正の場合は、左から数えてcount個目の区切り文字より左側のすべてが返されます。countが負の場合は、右から数えて|count|個目の区切り文字より右側のすべてが返されます。UIntまたはInt
返される値
delim が count 回出現する位置より前の s の部分文字列を返します。String
例
使用例
substringIndexUTF8
導入バージョン: v23.7
Unicode コードポイント単位で、区切り文字 delim が count 回出現するまでの s の部分文字列を返します。
文字列が有効な UTF-8 エンコードのテキストであることを前提とします。
この前提が満たされない場合でも、例外はスローされず、結果は未定義です。
構文
引数
s— 部分文字列を抽出する元の文字列。Stringdelim— 分割に使用する区切り文字。Stringcount— 部分文字列を抽出する前にカウントする区切り文字の出現回数。countが正の値の場合は、(左から数えて)最後の区切り文字より左側のすべてが返されます。countが負の値の場合は、(右から数えて)最後の区切り文字より右側のすべてが返されます。UIntまたはInt
戻り値
delim が count 回出現する位置より前にある s の部分文字列を返します。String
使用例
UTF8 の例
substringUTF8
導入バージョン: v1.1
Unicode コードポイントを基準として、文字列 s のうち、指定したバイトインデックス offset から始まる部分文字列を返します。
バイトのカウントは次のルールで 1 から始まります。
offsetが0の場合は、空文字列を返します。offsetが負の場合、部分文字列は先頭からではなく、文字列の末尾からpos文字目を開始位置として始まります。
省略可能な引数 length は、返される部分文字列が持つことのできる最大バイト数を指定します。
この関数は、文字列が有効な UTF-8 でエンコードされたテキストであることを前提とします。 この前提が満たされていない場合でも、例外はスローされず、結果は未定義となります。
構文
引数
s— 部分文字列を取得する対象の文字列。StringまたはFixedStringまたはEnumoffset—s内での部分文字列の開始位置。IntまたはUIntlength— 部分文字列の最大長。省略可能。IntまたはUInt
返される値
インデックス offset から開始し、最大 length バイトの s の部分文字列を返します。String
例
使用例
toValidUTF8
導入バージョン: v20.1
文字列内の無効な UTF-8 文字を、置換文字 � (U+FFFD) に置き換えることで、有効な UTF-8 エンコーディングに変換します。
連続する複数の無効な文字が見つかった場合は、1 つの置換文字にまとめられます。
構文
引数
s— String データ型オブジェクトとして表される任意のバイト列。String
戻り値
有効な UTF-8 文字列を返します。String
例
使用例
trimBoth
v20.1 で導入
文字列の先頭および末尾から、指定した文字を削除します。 デフォルトでは、一般的な空白(ASCII)文字を削除します。
構文
エイリアス: trim
引数
戻り値
両端から指定された文字を取り除いた文字列を返します。String
例
使用例
trimLeft
導入バージョン: v20.1
文字列の先頭から指定した文字を削除します。 既定では、一般的な空白(ASCII)文字を削除します。
構文
別名: ltrim
引数
戻り値
先頭(左側)から指定した文字をトリミングした文字列を返します。String
例
使用例
trimRight
導入バージョン: v20.1
文字列の末尾から指定した文字を削除します。 デフォルトでは、一般的な ASCII の空白文字を削除します。
構文
別名: rtrim
引数
戻り値
指定された文字を右端からトリムした文字列を返します。String
例
使用例
tryBase32Decode
導入バージョン: v25.6
文字列を受け取り、Base32 エンコード方式でデコードします。
構文
引数
encoded— デコードする文字列型の列または定数。有効な Base32 でエンコードされた文字列でない場合、エラー時には空文字列を返します。String
戻り値
引数をデコードした値を含む文字列を返します。String
例
使用例
tryBase58Decode
導入バージョン: v22.10
base58Decode と同様ですが、エラーが発生した場合は空文字列を返します。
構文
引数
encoded— 文字列型カラムまたは定数。文字列が有効な Base58 エンコードでない場合、エラーが発生したときは空文字列を返します。String
戻り値
引数の値をデコードした結果を含む文字列を返します。String
例
使用例
tryBase64Decode
導入バージョン: v18.16
base64Decode と同様ですが、エラー時には空文字列を返します。
構文
引数
encoded— デコード対象の文字列カラムまたは定数。文字列が有効な Base64 エンコードでない場合、エラー時は空文字列を返します。String
戻り値
引数をデコードした値を含む文字列を返します。String
例
使用例
tryBase64URLDecode
導入バージョン: v18.16
base64URLDecode と同様ですが、エラーの場合は空文字列を返します。
構文
引数
encoded— デコードする文字列カラムまたは定数。文字列が有効な Base64 エンコード文字列でない場合、エラー時には空文字列を返します。String
戻り値
引数をデコードした結果を含む文字列を返します。String
例
使用例
tryIdnaEncode
導入バージョン: v24.1
Internationalized Domain Names in Applications(IDNA)メカニズムに従い、ドメイン名の Unicode(UTF-8)表現(ToUnicode アルゴリズム)を返します。 エラー発生時は、例外をスローする代わりに空文字列を返します。
構文
引数
s— 入力文字列。String
戻り値
入力値に対する IDNA メカニズムに従い、入力文字列の ASCII 表現を返します。入力が無効な場合は空文字列を返します。String
例
使用例
tryPunycodeDecode
導入バージョン: v24.1
punycodeDecode と同様ですが、有効な Punycode でエンコードされた文字列が指定されなかった場合は空文字列を返します。
構文
引数
s— Punycode でエンコードされた文字列。String
戻り値
入力値のプレーンテキストを返します。入力が無効な場合は空文字列を返します。String
例
使用例
upper
導入バージョン: v1.1
文字列内の ASCII ラテン文字を大文字に変換します。
構文
エイリアス: ucase
引数
s— 大文字に変換する文字列。String
戻り値
s を大文字に変換した文字列を返します。String
例
使用例
upperUTF8
導入されたバージョン: v1.1
文字列が有効な UTF-8 でエンコードされたテキストであると仮定して、その文字列を大文字に変換します。 この仮定に反する場合でも、例外はスローされず、結果は未定義です。
この関数は言語を判別しません。たとえばトルコ語では結果が厳密に正しくない場合があります(i/İ と i/I など)。
あるコードポイントについて、大文字と小文字で UTF-8 のバイト列の長さが異なる場合(ẞ と ß など)、そのコードポイントに対する結果は正しくない可能性があります。
構文
引数
s— 文字列型。String
戻り値
String データ型の値。String
例
使用例