Presto文字列処理関数の紹介
Prestoの文字列処理関数についてご紹介します。

Presto文字列処理の注意事項
PrestoではUTF-8をベースとしており、エンコードによっては意図しない挙動をする可能性があると公式リファレンスに記載されております。
私自身UTF-8ベースで入っているデータしか扱ったことがなく、どのような挙動をするかわからないですが、UTF-8で入っている日本語、英数字については問題なく正常に挙動しているため、このリファレンスもUTF-8を前提としてご紹介します。
またPrestoの場合シングルクォーテーション(‘)で文字列を囲ってください。ダブルクオーテーション(“)で囲ってしまった場合、カラムを検索しにいき、意図した挙動にならないことがあります。
逆に接頭辞(先頭の文字)が数字の論理名の場合、ダブルクオーテーション(“)囲っておくとエラーなく、取得することができます。
詳しくは下記をしておりますのでよろしければ一読いただけますと幸いです。
文字列処理関数一覧
凡例
下記一覧で利用している変数などをここに記載します。
変数一覧
str
・・・ 文字列が入っているカラムorは固定文字列search_str
・・・ 検索文字列{str}
・・・ 任意の文字列(入れても入れなくも良い)int
・・・ 整数
関数一覧
No | 関数 | 説明 |
1 | length(str) | stringの文字数を返却します。 返却値:integer(bigint) |
2 | concat(str1, str2) | ‘||’と同様で引数の文字列を連結する 例: str1, str2 → str1str2 返却値:string(varchar) |
3 | levenshtein_distance(str1, str2) | レーベンシュタイン距離の関数 引数の文字列同士を比較、 差分をカウントし、数値で返却します。 例: str1, str2 → 1 返却値:integer(bigint) |
4 | reverse(str) | 引数の文字列を逆順で返却する 例: 文字列 → 列字文 返却値:string(varchar) |
5 | lower(str) | 引数の文字列をすべて小文字に変換して返却する 返却値:string(varchar) |
6 | upper(str) | 引数の文字列をすべて大文字に変換して返却する 返却値:string(varchar) |
7 | replace(str, search_str,{str}) | str内の文字からsearch_strの文字を 削除する。 {str}の引数を含めるとsearch_strを {str}に置換する。 返却値:string(varchar) |
8 | trim(str) | 文字列の前後から空白を削除する。 ltrim(str)にすると文頭から rtrim(str)にすると文末から削除が可能 返却値:string(varchar) |
9 | strpos(str,search_str) | str内からsearch_strの文字を探し 開始位置の数値を返却 例: 文字列もじ, も → 4 返却値:integer(bigint) |
10 | substr(str, int1, int2) | str内から文字列を抽出する int1:取得開始位置(1から始まる) int2:開始位置から何文字取得するかを指定する 例: 文字列もじ, 1,3 → 文字列 返却値:string(varchar) |
11 | to_utf8(str) | 文字列をUTF-8にエンコードします。 返却値:string(varchar) |
12 | from_utf8(str) | 文字列をバイナリにデコードします。 返却値:string(varchar) |
備考
他のRDB同様に利用できる関数が多く、SQLを普段から使っている人にとってはとっつきやすいと思います。
参照元
https://prestodb.io/docs/0.172/functions/string.html