文字列を扱うための関数
文字列の検索および置換に関する関数については、別途説明しています。
以下のドキュメントは、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 でない場合に、文字 c を s の末尾に追加します。
構文
引数
戻り値
文字列 s が c で終わっていない場合、その末尾に文字 c を付加したものを返します。String
例
使用例
ascii
導入バージョン: v22.11
文字列 s の先頭文字の 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
RFC 4648 に従い、Base64 形式から文字列をデコードします。 エラーが発生した場合は例外をスローします。
構文
別名: FROM_BASE64
引数
encoded— デコードする文字列型のカラムまたは定数。文字列が有効な Base64 形式でない場合は、例外がスローされる。String
返される値
デコードされた文字列を返す。String
例
使用例
base64Encode
導入バージョン: v18.16
RFC 4648 に従って、文字列を Base64 形式でエンコードします。
構文
別名: TO_BASE64
引数
plaintext— 復号する対象のプレーンテキストを含むカラムまたは定数。String
返される値
引数の値をエンコードした文字列を返します。String
例
使用例
base64URLDecode
導入バージョン: v24.6
URL セーフアルファベットを使用し、RFC 4648 に従って 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— 比較する最初の文字列。Strings2— 比較する2番目の文字列。Strings1_offset— 比較を開始するs1内の位置(0始まり)。UInt*s2_offset— 比較を開始するs2内の位置(0始まりのインデックス)。UInt*num_bytes— 両方の文字列で比較する最大バイト数。s1_offset(またはs2_offset) +num_bytesが入力文字列の末尾を超える場合、num_bytesはそれに応じて調整されます。UInt*
戻り値
次の値を返します:
-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—s1[s1_offset:s1_offset+num_bytes] >s2[s2_offset:s2_offset+num_bytes] の場合。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 を返します。引数が 1 つも指定されない場合は、空文字列を返します。型は 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
エンコーディング from から to へ変換した文字列 s を返します。
構文
引数
戻り値
文字列 s を、エンコーディング from から to に変換して返します。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つの UTF8 文字列間の編集距離を返します。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
UTF-8 文字列の左側を、スペースまたは指定した文字列で(必要に応じて複数回)パディングし、結果の文字列が指定された長さに達するまで埋めます。
文字列の長さをバイト数で測定する 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
使用例
first
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
UTF-8 文字列を NFKC 正規化形式 に従って正規化します。
構文
引数
str— UTF-8 でエンコードされた入力文字列。String
戻り値
UTF-8 文字列を NFKC 形式に正規化した文字列を返します。String
例
使用例
normalizeUTF8NFKD
導入されたバージョン: v21.11
UTF-8 文字列を NFKD 正規化形式 に従って正規化します。
構文
引数
str— UTF-8 でエンコードされた入力文字列。String
返される値
UTF-8 文字列を NFKD 形式に正規化したものを返します。String
例
使用例
punycodeDecode
導入バージョン: v24.1
Punycode でエンコードされた文字列の、UTF8 エンコードされたプレーンテキストを返します。 有効な 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はどの正規表現グループを抽出するかを示します。indexが 0 の場合は、正規表現全体にマッチした部分(全体一致)を意味します。const Stringindex— 省略可能。0 以上の整数値で、デフォルト値は 1 です。抽出する正規表現グループを表します。(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
例
正の offset
負のオフセット
soundex
導入バージョン: v23.4
文字列の Soundex コード を返します。
構文
引数
s— 入力文字列。String
戻り値
入力文字列の Soundex コードを返します。String
例
使用例
space
導入バージョン: v23.5
指定された回数分の空白文字( )を連結して返します。
構文
引数
n— スペースを繰り返す回数。(U)Int*
戻り値
スペースを n 回繰り返した文字列を返します。n <= 0 の場合は空文字列を返します。String
例
使用例
sparseGrams
導入バージョン: 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*
返り値
選択された部分文字列の配列を返します。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— 省略可能。抽出される n-gram の長さの最小値。デフォルトかつ最小値は 3。UInt*max_ngram_length— 省略可能。抽出される n-gram の長さの最大値。デフォルト値は 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
文字列内のバイト分布に対する Shannon エントロピーを計算します。
構文
引数
s— 解析対象の文字列。String
戻り値
文字列内のバイト分布のシャノンエントロピーを返します。Float64
例
使用例
stringBytesUniq
導入バージョン: v25.6
文字列内の重複しないバイトの個数を数えます。
構文
引数
s— 解析対象の文字列。String
戻り値
文字列内に含まれる異なるバイトの種類数を返します。UInt16
例
使用例
stringJaccardIndex
導入バージョン: v23.11
2 つのバイト列間の Jaccard 類似度 を計算します。
構文
引数
戻り値
2 つの文字列間のジャカード類似度係数を返します。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 と同様に、文字列 s から、区切り文字 delim が count 回目に現れる位置より前の部分文字列を返します。
構文
別名: SUBSTRING_INDEX
引数
s— 部分文字列を抽出する元の文字列。Stringdelim— 文字列を分割するための区切り文字。Stringcount— 部分文字列を抽出する前に数える区切り文字の出現回数。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
使用例
UTF-8 の例
substringUTF8
導入バージョン: v1.1
Unicode コードポイントに対して、指定されたバイトインデックス offset から始まる文字列 s の部分文字列を返します。
バイト数のカウントは、次のロジックで 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
例
使用例