-
STRING
引数を受け入れるすべての関数は、Impala2.0で導入されたVARCHAR
型とCHAR
型も受け入れます。STRING
引数を受け入れるすべての関数は、VARCHAR
型とCHAR
型も受け入れます。 -
VARCHAR
またはCHAR
の値が文字列値を返す関数に渡されるたびに、戻り値の型はSTRING
に正規化されます。 たとえば、引数STRING
、VARCHAR
、およびCHAR
を組み合わせてconcat()
を呼び出すと、STRING
の結果が生成されます。
関数参照:
Impalaは、次の文字列関数をサポートしています:
- ASCII
- BASE64DECODE
- BASE64ENCODE
- BTRIM
- CHAR_LENGTH
- CHR
- CONCAT
- CONCAT_WS
- GROUP_CONCAT
- INITCAP
- INSTR
- JARO_DISTANCE,JARO_DIST
- JARO_SIMILARITY,JARO_SIM
- JARO_WINKER_DISTANCE,JW_DST
- JARO_WINKER_SIMILARITY,JW_SIM
- 左
- 長さ
- LEVENSHTEIN,LE_DST
- 位置
- 下、LCASE
- LPAD
- LTRI
- PARSE_URL
- REGEXP_ESCAPE
- REGEXP_EXTRACT
- REGEXP_LIKE
- REGEXP_REPLACE
- 繰り返し
- 置換
- 逆
- 右
- RPAD
- RTRIM
- スペース
- SPLIT_PART
- STRLEFT
- STRRIGHT
- SUBSTR,SUBSTRING
- TRANSLATE
- TRIM
- upper,ucase
ASCII(STRING STR)目的:引数の最初の文字の数値ASCIIコードを返します。
戻り値の型: INT
BASE64DECODE(STRING str)目的:
戻り値の型: STRING
使用上の注意:
関数BASE64ENCODE()
とBASE64DECODE()
は、通常、格納または送信するのに問題のあるImpalaテーブル文字列データを格納するために組み合わせて使用されます。 たとえば、これらの関数を使用して、UTF-8以外のエンコーディングを使用する文字列データを格納したり、パーティションキー列などのASCII値を必要とするコン Base64エンコードされた値は、LENGTH()
、MAX()
、MIN()
などの文字列関数に対して、エンコードされていない文字列値で呼び出された場合とは異なる結果を生成することに注意し
BASE64ENCODE()
によって生成されるすべての戻り値は、長さが4バイトの倍数です。 BASE64DECODE()
に指定されるすべての引数値は、長さが4バイトの倍数でなければなりません。 それ以外の場合、base64エンコードされた値の長さが異なる場合は、末尾に=
文字を埋めて、4バイトの倍数の長さに達することができます。
BASE64DECODE()
への引数文字列が有効なbase64エンコードされた値を表していない場合、許可された文字セットなどのImpala実装の制約に従って、関数はNULL
を返します。
BASE64DECODE()
への引数文字列が有効なbase64エンコードされた値を表していない場合、この関数はNULL
を返します。
例:
BASE64ENCODE(STRING str)目的:
戻り値の型: STRING
使用上の注意:
関数BASE64ENCODE()
とBASE64DECODE()
は、通常、格納または送信するのに問題のあるImpalaテーブル文字列データを格納するために組み合わせて使用されます。 たとえば、これらの関数を使用して、UTF-8以外のエンコーディングを使用する文字列データを格納したり、パーティションキー列などのASCII値を必要とするコン Base64エンコードされた値は、LENGTH()
、MAX()
、MIN()
などの文字列関数に対して、エンコードされていない文字列値で呼び出された場合とは異なる結果を生成することに注意し
BASE64ENCODE()
によって生成されるすべての戻り値は、長さが4バイトの倍数です。 BASE64DECODE()
に指定されるすべての引数値は、長さが4バイトの倍数でなければなりません。 それ以外の場合、base64エンコードされた値の長さが異なる場合は、末尾に=
文字を埋めて、4バイトの倍数の長さに達することができます。
例:
BTRIM(STRING a),BTRIM(STRING a,STRING chars_to_trim)目的:STRING
値の先頭と末尾から1つ以上の文字のすべてのインスタンスを削除します。 デフォルトでは、スペースのみを削除します。NULL
以外のオプションの第二引数が指定されている場合、この関数は、その第二引数に含まれるすべての文字を、文字列の先頭と末尾から削除します。
戻り値の型: STRING
例:
次の例は、デフォルトのbtrim()
動作と、オプションの第二引数を指定するとどのように変更されるかを示しています。 すべての例では、出力値をで囲み、
btrim()
結果の先頭または末尾のスペースを表示できるようにします。 デフォルトでは、この関数は先頭と末尾の両方のスペースのand数を削除します。 2番目の引数が指定されている場合、2番目の引数の任意の文字の任意の数が入力文字列の先頭と末尾から削除されます; この場合、スペースは(2番目の引数の一部でない限り)削除されず、文字列の先頭または末尾に来ない場合、文字のインスタンスは削除されません。
CHAR_LENGTH(STRING a),CHARACTER_LENGTH(STRING a)目的:引数文字列の長さを文字単位で返します。length()
関数の別名。
戻り値の型:INT
CHR(INT character_code)目的:10進コードポイント値で指定された文字を返します。 結果の文字の解釈と表示は、システムロケールによって異なります。 Impala文字列値の一貫した処理はASCII範囲内の値に対してのみ保証されるため、ASCII文字に対応する値に対してのみこの関数を使用してください。 特に、255より大きいパラメータ値は空の文字列を返します。
戻り値の型: STRING
使用上の注意:文字を数値ASCIIコードに変換するascii()
関数の逆関数として使用できます。
例:
SELECT chr(65);+---------+| chr(65) |+---------+| A |+---------+SELECT chr(97);+---------+| chr(97) |+---------+| a |+---------+
CONCAT(STRING a,STRING b…)目的:結合されたすべての引数値を表す単一の文字列を返します。
いずれかの引数がNULL
の場合、関数はNULL
を返します。
戻り値の型: STRING
使用上の注意:concat()
とconcat_ws()
は、同じ行内の複数の列の値を連結するのに適していますが、group_concat()
は異なる行の値を結合します。
CONCAT_WS(STRING sep,STRING a,STRING b…)目的:指定された区切り文字で区切られた、2番目以降の引数値を結合した単一の文字列を返します。
いずれかの引数がNULL
の場合、関数はNULL
を返します。
戻り値の型: STRING
使用上の注意: concat()
とconcat_ws()
は、同じ行内の複数の列の値を連結するのに適していますが、group_concat()
は異なる行の値を結合します。
FIND_IN_SET(STRING str,STRING strList)目的:カンマ区切り文字列内で指定された文字列が最初に出現する位置(1から始まる)を返します。 いずれかの引数がNULL
の場合はNULL
を返し、検索文字列が見つからない場合は0を返し、検索文字列にコンマが含まれている場合は0を返します。
戻り値の型:INT
GROUP_CONCAT(STRING s)目的: 結果セットの各行に対して連結された引数値を表す単一の文字列を返します。 オプションの区切り文字列が指定されている場合は、連結された値の各ペアの間に区切り文字が追加されます。
戻り値の型: STRING
使用上の注意:concat()
とconcat_ws()
は、同じ行内の複数の列の値を連結するのに適していますが、group_concat()
は異なる行の値を結合します。
デフォルトでは、結果セット全体をカバーする単一の文字列を返します。 結果セットに他の列または値を含めたり、行のサブセットに対して複数の連結された文字列を生成したりするには、クエリにGROUP BY
句を含めます。
厳密に言えば、group_concat()
は集計関数であり、このリストの他の関数のようなスカラー関数ではありません。 その他の詳細と例については、GROUP_CONCAT
関数を参照してください。
INITCAP(STRING str)目的:各単語の最初の文字を大文字にし、他のすべての文字を小文字にした入力文字列を返します。
戻り値の型: STRING
例:
INITCAP("i gOt mY ChiCkeNs in tHe yard.")
"I Got My Chickens In The Yard."
を返します。
INSTR(STRING str,STRING substr])目的:長い文字列内で最初に出現する部分文字列の位置(1から始まる)を返します。
戻り値の型: INT
使用上の注意:
substrがstrに存在しない場合、関数は0を返します。
オプションの3番目と4番目の引数を使用すると、左から始まる最初のインスタンス以外のsubstrのインスタンスを見つけることができます。
JARO_DISTANCE(STRING str1,STRING str2)JARO_DST(STRING str1,STRING str2)目的:二つの入力文字列間のジャロ距離を返します。 Jaro距離は、2つの文字列間の類似性の尺度であり、JARO_SIMILARITY()
の相補的なもの、すなわち(1-JARO_SIMILARITY()
)です。
戻り値の型: DOUBLE
使用上の注意:
2つの入力文字列が同一の場合、関数は0.0を返します。
入力文字列の間に一致する文字がない場合、関数は1.0を返します。
いずれかの入力文字列がNULL
の場合、関数はNULL
を返します。
いずれかの入力文字列の長さが255文字より大きい場合、関数はエラーを返します。
JARO_SIMILARITY(STRING str1,STRING str2)JARO_SIM(STRING str1,STRING str2)目的:二つの文字列のJaroの類似性を返します。 二つの文字列のJaroの類似性が高いほど、文字列がより類似しています。
戻り値の型: DOUBLE
使用上の注意:
2つの入力文字列が同一の場合、この関数は1.0を返します。
入力文字列の間に一致する文字がない場合、関数は0.0を返します。
いずれかの入力文字列がNULL
の場合、関数はNULL
を返します。
いずれかの入力文字列の長さが255文字より大きい場合、関数はエラーを返します。
JARO_WINKLER_DISTANCE(STRING str1,STRING str2)JW_DST(STRING str1,STRING str2)目的:二つの入力文字列のJaro-Winkler距離を返します。 それはJARO_WINKLER_SIMILARITY()
の補数、すなわち1-JARO_WINKLER_SIMILARITY()
である。
戻り値の型: DOUBLE
使用上の注意:
2つの入力文字列が同一の場合、関数は0.0を返します。
入力文字列の間に一致する文字がない場合、関数は1.0を返します。
- いずれかの入力文字列の長さが255文字を超えています。
- scaling_factor<0.0またはscaling_factor> 0.25
- boost_threshold<0.0またはboost_threshold> 1.0
いずれかの入力文字列がNULL
の場合、関数はNULL
を返します。
デフォルトの倍率は0.1です。
接頭辞の重みは、Jaro-distanceがオプションのboost_thresholdを超えた場合にのみ適用されます。 デフォルトでは、boost_threshold値は0.7です。
JARO_WINKLER_SIMILARITY(STRING str1,STRING str2)JARO_SIM(STRING str1,STRING str2)目的:二つの入力文字列間のJaro-Winklerの類似性を返します。 Jaro-Winklerの類似性では、スケーリング係数で指定された接頭辞の重みが使用され、設定された接頭辞の長さに対して最初から一致する文字列に、最大4文字まで
JaroまたはJaro-Winkler関数を使用して、比較的短い文字列に対してあいまい一致を実行します。
戻り値の型: DOUBLE
使用上の注意:
2つの入力文字列が同一の場合、関数は1.0を返します。
入力文字列の間に一致する文字がない場合、関数は0.0を返します。
- いずれかの入力文字列の長さが255文字を超えています。
- scaling_factor<0.0またはscaling_factor> 0.25
- boost_threshold<0.0またはboost_threshold> 1.0
いずれかの入力文字列がNULL
の場合、関数はNULL
を返します。
デフォルトの倍率は0.1です。
接頭辞の重みは、jaro-similarityがオプションのboost_thresholdを超えている場合にのみ適用されます。 デフォルトでは、boost_threshold値は0.7です。
LEFT(STRING a,INT num_chars)STRLEFT()
関数を参照してください。 LENGTH(STRING a)目的:引数stringの長さを文字単位で返します。
戻り値の型:INT
LEVENSHTEIN(STRING str1,STRING str2),LE_DST(STRING str1,STRING str2)目的:二つの入力文字列間のLevenshtein距離を返します。 2つの文字列間のLevenshtein距離は、1つの文字列を他の文字列に変換するために必要な1文字の編集の最小数です。 この関数は、入力文字列がどのように異なるかを示します。
戻り値の型:INT
使用上の注意:
入力文字列が等しい場合、関数は0を返します。
いずれかの入力が255文字を超えると、この関数はエラーを返します。
いずれかの入力文字列がNULL
の場合、関数はNULL
を返します。
一方の入力文字列の長さがゼロの場合、この関数はもう一方の文字列の長さを返します。
:
LEVENSHTEIN ('welcome', 'We come')
は2を返し、最初に’w
‘を’W
‘に置き換え、次に’l
‘をスペース文字に置き換えます。
LOCATE(STRING substr,STRING str)目的:長い文字列内で最初に出現する部分文字列の位置(1から始まる)を返します。
戻り値の型:INT
LOWER(STRING a),LCASE(STRING a)目的:引数文字列をすべて小文字に変換して返します。
戻り値の型: STRING
使用上の注意:Impala2の
。5以降では、代わりにILIKE
演算子またはIREGEXP
演算子を使用することで、大文字と小文字を区別しない比較を行うために多くのUPPER()
およびLOWER()
呼び出しを使用するクエ
LPAD(STRING str,INT len,STRING pad)目的:最初の引数stringに基づいて、指定された長さの文字列を返します。 指定された文字列が短すぎる場合は、パッド文字列からの文字の繰り返しシーケンスで左側にパッドされます。 指定された文字列が長すぎる場合は、右側で切り捨てられます。
戻り値の型:STRING
LTRIM(STRING a)目的: 2番目の引数で指定されたすべての文字が左側から削除された引数文字列を返します。 二番目の引数が指定されていない場合は、スペースを削除します。
戻り値の型:STRING
PARSE_URL(STRING urlString,STRING partToExtract)目的:指定された部分に対応するURLの部分を返します。 Part引数は次のようになります'PROTOCOL'
,'HOST'
,'PATH'
,'REF'
,'AUTHORITY'
,'FILE'
,'USERINFO'
, または'QUERY'
。 これらのリテラル値には大文字が必要です。 URLのQUERY
部分を要求するときに、クエリ文字列内のキーと値のペアから関連する値だけを取得するキーをオプションで指定できます。
戻り値の型: STRING
使用上の注意:この関数は、webログを解釈する従来のHadoopのユースケースでは重要です。 たとえば、webトラフィックデータに個別のテーブル列に分割されていない生のUrlが含まれている場合、'PATH'
または'FILE'
フィールドを抽出して特定のページへの訪問者をカウントしたり、'QUERY'
フィールドから対応するキーを抽出して検索語を分析したりすることができます。
REGEXP_ESCAPE(STRING source)目的:REGEXP_ESCAPE
関数は、特殊文字が特殊文字としてではなく文字通り解釈されるように、RE2ライブラリの特殊文字のエスケープ文字列を返します。 次の特殊文字は、関数によってエスケープされます。
.\+*?$(){}=!<>|:-
戻り値の型: string
Impala2.0以降では、impalaの正規表現構文は、GOOGLE RE2ライブラリで使用されているPOSIX拡張正規表現構文に準拠しています。 詳細については、RE2のドキュメントを参照してください。 これは、非貪欲な一致のための.*?
を含む、PerlやPythonなどの正規表現からよく知られているほとんどのイディオムを持っています。
Impala2.0以降では、基になる正規表現ライブラリの変更により、この関数による正規表現の解釈方法が変更される可能性があります。 正規表現を使用するクエリをテストし、必要に応じて式パターンを調整します。
impala-shellインタプリタはエスケープに\
文字を使用するため、impala-shellを介して送信する正規表現では、\
を使用して正規表現のエスケープ文字を表現します。 たとえば、\d
の代わりに]
のような同等の文字クラス名を使用することをお勧めします。\d
としてエスケープする必要があります。
例:
この例は、RE2の特殊文字のいずれかをエスケープすることを示しています。
+------------------------------------------------------+| regexp_escape('Hello.world') |+------------------------------------------------------+| Hello\.world |+------------------------------------------------------+
この例では、RE2のすべての特殊文字をエスケープしています。
+------------------------------------------------------------+| regexp_escape('a.b\c+d*e?fh$i(j)k{l}m=n!o<p>q|r:s-t') |+------------------------------------------------------------+| a\.b\c\+d\*e\?f\h$i\(j\)k\{l\}m\=n\!o\<p\>q\|r\:s\-t |+------------------------------------------------------------+
REGEXP_EXTRACT(STRING subject,STRING pattern,INT index)目的:正規表現パターンに基づいて、指定された()グループを文字列から返します。 グループ0は抽出された文字列全体を参照し、グループ1、2などは最初の部分、2番目の部分などを参照します(...)
。
戻り値の型: STRING
Impala2.0以降では、impalaの正規表現構文は、GOOGLE RE2ライブラリで使用されているPOSIX拡張正規表現構文に準拠しています。 詳細については、RE2のドキュメントを参照してください。 これは、非貪欲な一致のための.*?
を含む、PerlやPythonなどの正規表現からよく知られているほとんどのイディオムを持っています。
Impala2.0以降では、基になる正規表現ライブラリの変更により、この関数による正規表現の解釈方法が変更される可能性があります。 正規表現を使用するクエリをテストし、必要に応じて式パターンを調整します。
impala-shellインタプリタはエスケープに\
文字を使用するため、impala-shellを介して送信する正規表現では、\
を使用して正規表現のエスケープ文字を表現します。 たとえば、\d
の代わりに]
のような同等の文字クラス名を使用することをお勧めします。\d
としてエスケープする必要があります。
例:
この例では、グループ0が()
グループの外側の部分を含む完全なパターン文字列とどのように一致するかを示します:
次の例では、グループ1がパターン文字列の最初の()
グループ内の内容だけに一致する方法を示しています。
以前のImpalaリリースとは異なり、Impala2.0以降で使用されている正規表現ライブラリは、非貪欲な一致の.*?
イディオムをサポートしています。 この例では、.*?
で始まるパターン文字列が、ソース文字列の可能な限り短い部分と一致し、右端の小文字のセットを返す方法を示します。 .*?
で始まるパターン文字列と終了するパターン文字列は、同じ長さの2つの可能性のある一致を検索し、見つかった最初のもの(左端の小文字のセット)を返
REGEXP_LIKE(STRING source,STRING pattern)目的:ソース文字列にパターンによって指定された正規表現が含まれているかどうかを示すために、true
またはfalse
を返します。 オプションの3番目の引数は、大文字と小文字を区別しない一致のためのi
など、一致の実行方法を変更する文字フラグで構成されます。
:
オプションの第三引数に含めることができるフラグは次のとおりです:
-
c
: 大文字と小文字を区別する一致(デフォルト)。 -
i
: 大文字と小文字を区別しない一致。 3番目の引数にc
とi
の複数のインスタンスが含まれている場合は、そのような最後のオプションが優先されます。 -
m
: 複数行の一致。 演算子^
および$
は、文字列全体の開始および終了ではなく、ソース文字列内の任意の行の開始または終了と一致します。 -
n
: 改行の一致。.
演算子は、改行文字と一致させることができます。.*
などの繰り返し演算子は、ソース文字列の複数行にまたがる部分と一致できます。
戻り値の型: BOOLEAN
Impala2.0以降では、impalaの正規表現構文は、GOOGLE RE2ライブラリで使用されているPOSIX拡張正規表現構文に準拠しています。 詳細については、RE2のドキュメントを参照してください。 これは、非貪欲な一致のための.*?
を含む、PerlやPythonなどの正規表現からよく知られているほとんどのイディオムを持っています。
インパラ2で。0以降では、基になる正規表現ライブラリを変更すると、この関数によって正規表現が解釈される方法が変更される可能性があります。 正規表現を使用するクエリをテストし、必要に応じて式パターンを調整します。
impala-shellインタプリタはエスケープに\
文字を使用するため、impala-shellを介して送信する正規表現では、\
を使用して正規表現のエスケープ文字を表現します。 たとえば、\d
の代わりに]
のような同等の文字クラス名を使用することをお勧めします。\d
としてエスケープする必要があります。
例:
この例では、REGEXP_LIKE()
がソース文字列内にさまざまな種類の正規表現パターンが存在するかどうかをテストする方法を示します。
REGEXP_REPLACE(STRING initial,STRING pattern,STRING replacement)目的:正規表現パター
戻り値の型: STRING
インパラ2で。0以降では、Impalaの正規表現構文は、GOOGLE RE2ライブラリで使用されているPOSIX拡張正規表現構文に準拠しています。 詳細については、RE2のドキュメントを参照してください。 これは、非貪欲な一致のための.*?
を含む、PerlやPythonなどの正規表現からよく知られているほとんどのイディオムを持っています。
Impala2.0以降では、基になる正規表現ライブラリの変更により、この関数による正規表現の解釈方法が変更される可能性があります。 正規表現を使用するクエリをテストし、必要に応じて式パターンを調整します。
impala-shellインタプリタはエスケープに\
文字を使用するため、impala-shellを介して送信する正規表現では、\
を使用して正規表現のエスケープ文字を表現します。 たとえば、\d
の代わりに]
のような同等の文字クラス名を使用することをお勧めします。\d
としてエスケープする必要があります。
例:
これらの例は、パターンに一致する文字列の一部を置換テキストに置き換える方法を示しています。 バック参照番号は1から始まり、\
文字は\
としてエスケープする必要があります。
文字パターンを新しいテキストに置き換える:
> select regexp_replace('aaabbbaaa','b+','xyz');+------------------------------------------+| regexp_replace('aaabbbaaa', 'b+', 'xyz') |+------------------------------------------+| aaaxyzaaa |+------------------------------------------+Returned 1 row(s) in 0.11s
文字パターンを、元の一致するテキストを含む置換テキストに置き換えます:
> select regexp_replace('aaabbbaaa','(b+)','<\1>');+----------------------------------------------+| regexp_replace('aaabbbaaa', '(b+)', '<\1>') |+----------------------------------------------+| aaa<bbb>aaa |+----------------------------------------------+Returned 1 row(s) in 0.11s
数字ではないすべての文字を削除します。
REPEAT(STRING str,INT n)目的:指定された回数繰り返された引数文字列を返します。
戻り値の型:STRING
REPLACE(文字列の初期値、文字列のターゲット、文字列の置換)目的: ターゲット文字列のすべての出現箇所を置換文字列に置き換えた初期引数を返します。
戻り値の型: STRING
使用上の注意:
この関数は正規表現パターンを使用しないため、通常は単純な文字列置換の場合はREGEXP_REPLACE()
よりも高速です。
いずれかの引数がNULL
の場合、戻り値はNULL
です。
一致では大文字と小文字が区別されます。
置換文字列にターゲット文字列の別のインスタンスが含まれている場合、展開は一度だけ実行され、新しく構築された文字列に再度適用されます。
例:
REVERSE(STRING a)目的:逆の順序で文字を持つ引数stringを返します。
戻り値の型:STRING
RIGHT(STRING a,INT num_chars)STRRIGHT
関数を参照してください。 RPAD(STRING str,INT len,STRING pad)目的:最初の引数stringに基づいて、指定された長さの文字列を返します。 指定された文字列が短すぎる場合は、パッド文字列からの文字の繰り返しシーケンスで右側にパッドされます。 指定された文字列が長すぎる場合は、右側で切り捨てられます。
戻り値の型:STRING
RTRIM(STRING a)目的:第二引数で指定されたすべての文字が右側から削除された引数stringを返します。 二番目の引数が指定されていない場合は、スペースを削除します。
戻り値の型:STRING
SPACE(INT n)目的:指定された数のスペースの連結された文字列を返します。repeat(' ',n)
の省略形。
戻り値の型: STRING
SPLIT_PART(STRING source,STRING delimiter,BIGINT index)目的:区切り文字で分割された入力ソース文字列の要求されたindex
番目の部分を返します。
- indexが正の数の場合、ソース文字列内の左からindex番目の部分を返します。
- indexが負の数の場合、ソース文字列内の右からindex番目の部分を返します。
- indexが0の場合、エラーを返します。
区切り文字は、単一の文字だけでなく、複数の文字で構成できます。
区切り文字のすべての一致は、正規表現パターンを使用していない、正確に行われます。
戻り値の型: STRING
例:
SPLIT_PART('x,y,z',',',2)
'y'
を返します。
SPLIT_PART('one***two***three','***',2)
は'two'
を返します。
SPLIT_PART('[email protected]@[email protected]@ghi', '@@', 3)
は'ghi'
を返します。
SPLIT_PART('[email protected]@[email protected]@ghi', '@@', -3)
は'abc'
を返します。
STRLEFT(STRING a,INT num_chars)目的:文字列の左端の文字を返します。 2つの引数を持つsubstr()
への呼び出しの省略形。
戻り値の型:STRING
STRRIGHT(STRING a,INT num_chars)目的:文字列の右端の文字を返します。 2つの引数を持つsubstr()
への呼び出しの省略形。
戻り値の型:STRING
SUBSTR(STRING a,INT start),SUBSTRING(STRING a,INT start)目的:指定されたポイントから始まる文字列の部分を返します。 文字列内の文字は、1から始まるインデックスが付けられます。
戻り値の型:STRING
TRANSLATE(STRING input,STRING from,STRING to)目的:from
引数の各文字をto
引数の対応する文字に置き換えたinput
文字列を返します。 文字は、from
およびto
に表示される順序で一致します。
たとえば、translate ('hello world','world','earth')
は'hetta earth'
を返します。
戻り値の型: STRING
使用上の注意:
from
にto
よりも多くの文字が含まれている場合、from
の長さがto
を超えている文字は結果で削除されます。 例えば
:
translate('abcdedg', 'bcd', '1')
'a1eg'
を返します。
translate('Unit Number#2', '# ', '_')
は'UnitNumber_2'
を返します。
from
がNULL
の場合、関数はNULL
を返します。
to
にfrom
より多くの文字が含まれている場合、to
の余分な文字は無視されます。
from
に重複した文字が含まれている場合、重複した文字はto
の最初の一致する文字に置き換えられます。
例:translate ('hello','ll','67')
は'he66o'
を返します。
TRIM(STRING a)目的:先頭と末尾の両方のスペースを削除した入力文字列を返します。 文字列をLTRIM()
とRTRIM()
の両方に渡すのと同じです。
使用上の注意:入力値がまだ周囲のスペースを持つ可能性がある場合、ETLサイクル中のデータクレンジング操作中に頻繁に使用されます。 スペース以外の先頭および末尾の文字を削除できるより汎用的な関数については、BTRIM()
を参照してください。
戻り値の型:STRING
UPPER(STRING a),UCASE(STRING a)目的:引数文字列をすべて大文字に変換して返します。
戻り値の型: STRING
使用上の注意:
Impala2.5以降では、ILIKE
またはIREGEXP
演算子を使用することで、大文字と小文字を区別しない比較を行うために多くのUPPER()
およびLOWER()
呼び出しを使