文字列関数を使用して、文字列を処理します。たとえば、文字の大文字・小文字の変換、空白の削除、部分文字列の抽出などが可能です。このトピックでは、AnalyticDB for MySQL の文字列関数の構文について説明し、使用例を示します。
ASCII:文字または文字列の先頭文字の ASCII 値を返します。
BIN:整数のバイナリ文字列表現を返します。
BIT_LENGTH:文字列の長さ(ビット単位)を返します。
CHAR:整数の 10 進 ASCII コードに対応する文字から構成される文字列を返します。
CHAR_LENGTH または CHARACTER_LENGTH:文字列の長さ(文字単位)を返します。
CONCAT:複数の文字列を連結します。
CONCAT_WS:指定された区切り文字を使用して、複数の文字列を連結します。
ELT:指定された文字列のリストから N 番目の文字列を返します。
ENCRYPT:文字列を暗号化します。
EXPORT_SET:整数のビット値に基づいて結合文字列を返します。
FIELD:文字列のリスト内で指定された文字列のインデックスを返します。
FIND_IN_SET:カンマ区切りのリスト内で文字列の位置を返します。
FORMAT:数値 N をフォーマットし、文字列として返します。
FROM_BASE64:Base64 エンコードされた文字列をデコードし、デコード結果を返します。
FROM_UTF8:UTF-8 エンコードされた文字列をデコードし、デコード結果を返します。
HEX:整数または文字列をその 16 進文字列表現に変換します。
INSTR:文字列内での部分文字列の最初の出現位置を返します。
LEFT:文字列の左端から N 文字を返します。
LENGTH または OCTET_LENGTH:文字列の長さを返します。
LIKE:シンプルなパターン一致を行います。
LOCATE:別の文字列内での部分文字列の最初の出現位置を返します。
LOWER または LCASE:文字列を小文字に変換します。
LPAD:文字列の左側を埋めます。
LTRIM:文字列の先頭の空白を削除します。
MAKE_SET:カンマ区切りの文字列のセットを返します。
MD5_MUR:文字列を数値に変換します。
MID:文字列内の指定位置から指定長の部分文字列を返します。この関数は SUBSTR または SUBSTRING と同じです。
OCT:指定された整数の 8 進文字列表現を返します。
ORD:先頭文字がマルチバイト文字の場合、その文字のコードを返します。
POSITION:文字列内での部分文字列の最初の出現位置を返します。
REPEAT:指定回数だけ文字列を繰り返した文字列を返します。
REPLACE:文字列の一部を指定された文字列で置き換えます。
REVERSE:文字列を逆順に並べ替えます。
RIGHT:文字列の右端から指定数の文字を返します。
RLIKE または REGEXP:文字列を正規表現と照合します。照合に成功した場合は 1 を、失敗した場合は 0 を返します。
RPAD:文字列の右側を埋めます。
RTRIM:文字列の末尾の空白を削除します。
SPACE:指定数の空白からなる文字列を返します。
SPLIT:デリミタで文字列を分割し、配列を返します。
SPLIT_PART:デリミタで文字列を分割し、指定インデックスの部分文字列を返します。
SPLIT_TO_MAP:
entryDelimiterおよびkeyValueDelimiterを使用して文字列を分割し、mapを返します。STRCMP:2 つの文字列を比較し、同一の場合は 0、現在のソート順で第 1 引数が第 2 引数より小さい場合は -1、それ以外の場合は 1 を返します。
SUBSTR または SUBSTRING:指定位置から指定長の部分文字列を返します。
SUBSTRING_INDEX:文字列から、デリミタの指定回数の前後いずれかの部分文字列を返します。
TO_BASE64:文字列の Base64 エンコード形式を返します。
TO_UTF8:文字列の UTF-8 エンコード形式を返します。
TRIM:文字列の先頭および末尾のすべての空白を削除します。
UPPER または UCASE:文字列を大文字に変換します。
UNHEX:16 進数を文字に変換します。
ASCII
ascii(str)説明:文字
strまたは文字列strの先頭文字の 10 進 ASCII 値を返します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:BIGINT。
例:
文:
SELECT ascii('2');次の結果が返されます:
+------------+ | ascii('2') | +------------+ | 50 | +------------+文:
SELECT ascii('dx');次の結果が返されます:
+-------------+ | ascii('dx') | +-------------+ | 100 | +-------------+
BIN
bin(N)説明:
Nのバイナリ文字列表現を返します。Nがnullの場合、NULLが返されます。入力パラメーターのデータの型:BIGINT。
戻り値のデータの型:VARCHAR。
例:
SELECT bin(12);次の結果が返されます:
+---------+ | bin(12) | +---------+ | 1100 | +---------+
BIT_LENGTH
bit_length(str)説明:文字列
strの長さ(ビット単位)を返します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:BIGINT。
例:
文:
SELECT bit_length('text');次の結果が返されます:
+--------------------+ | bit_length('text') | +--------------------+ | 32 | +--------------------+文:
SELECT bit_length('China');次の結果が返されます:
+---------------------+ | bit_length('China') | +---------------------+ | 40 | +---------------------+
CHAR
char(N1, N2, ...)説明:整数
N1、N2などの 10 進 ASCII コードに対応する文字から構成される文字列を返します。入力パラメーターのデータの型:BIGINT。
戻り値のデータの型:VARBINARY。
例:
SELECT char(97,110,97,108,121,116,105,99,100,98);次の結果が返されます:
+-------------------------------------------+ | char(97,110,97,108,121,116,105,99,100,98) | +-------------------------------------------+ | analyticdb | +-------------------------------------------+
CHAR_LENGTH または CHARACTER_LENGTH
char_length(str)
character_length(str)説明:文字列
strの長さ(文字単位)を返します。漢字 1 文字の長さは
1です。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:BIGINT。
例:
文:
SELECT char_length('China');次の結果が返されます:
+----------------------+ | char_length('China') | +----------------------+ | 5 | +----------------------+文:
SELECT char_length('abc');次の結果が返されます:
+--------------------+ | char_length('abc') | +--------------------+ | 3 | +--------------------+
CONCAT
concat(str 1, …, str n)説明:複数の文字列を連結します。いずれかのパラメーターが
nullの場合、戻り値はnullになります。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
文:
SELECT concat('aliyun', ', ', 'analyticdb');次の結果が返されます:
+--------------------------------------+ | concat('aliyun', ', ', 'analyticdb') | +--------------------------------------+ | aliyun, analyticdb | +--------------------------------------+文:
SELECT concat('abc',null,'def');次の結果が返されます:
+--------------------------+ | concat('abc',null,'def') | +--------------------------+ | NULL | +--------------------------+
CONCAT_WS
concat_ws(separator, str 1, …, str n)説明:指定された区切り文字を使用して複数の文字列を連結します。最初のパラメーター
separatorは、他のパラメーターのデリミタです。nullの文字列は連結時にスキップされます。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
文:
SELECT concat_ws(',', 'First name', 'Second name', 'Last Name')AS result;次の結果が返されます:
+----------------------------------+ | result | +----------------------------------+ | First name,Second name,Last Name | +----------------------------------+文:
SELECT concat_ws(',','First name',NULL,'Last Name')AS result;次の結果が返されます:
+----------------------+ | result | +----------------------+ | First name,Last Name | +----------------------+
ELT
elt(N, str 1, ...,str n);N番目の文字列を返します。N<1または N が文字列パラメーターの数より大きい場合、nullが返されます。入力パラメーターのデータの型:
Nは BIGINT 型、strは VARCHAR 型です。戻り値のデータの型:VARCHAR。
例:
SELECT elt(4, 'Aa', 'Bb', 'Cc', 'Dd');次の結果が返されます:
+--------------------------------+ | elt(4, 'Aa', 'Bb', 'Cc', 'Dd') | +--------------------------------+ | Dd | +--------------------------------+
暗号化
encrypt(x, y);説明:
xパラメーターを暗号化します。yはソルト値です。入力パラメーターのデータの型:
xは VARBINARY 型、yは VARCHAR 型です。戻り値のデータの型:VARBINARY
例:
SELECT encrypt('abdABC123','key');次の結果が返されます:
+--------------------------------------------------------+ | encrypt('abdABC123','key') | +--------------------------------------------------------+ | 0x6B657A617A6D63496F2E614377 | +--------------------------------------------------------+
EXPORT_SET
export_set(bits, onstr, offstr [, separator[,number_of_bits]]);説明:
bitsをバイナリ値に変換します。各パラメーターの説明は以下のとおりです:システムはバイナリ値を右から左へチェックします。ビットが 1 の場合、
onstr値に置き換えられます。ビットが 0 の場合、offstr値に置き換えられます。戻り値は
separatorで区切られます。number_of_bitsはチェックするビット数を指定します。デフォルト値は 64 です。number_of_bitsに 64 より大きい値を指定した場合、値は 64 に切り捨てられます。number_of_bitsに -1 を指定した場合、デフォルト値 64 が使用されます。
入力パラメーターのデータの型:
bitsおよびnumber_of_bitsは BIGINT 型です。onstr、offstr、separatorは VARCHAR 型です。戻り値のデータの型:VARCHAR。
例:
5 をバイナリ値に変換し、右から左へ最初の 2 ビットを取り出します。1 を
aに、0 をbに置き換え、aとbをカンマ (,) で区切ります。文は以下のとおりです:SELECT export_set(5,'a','b',',',2);次の結果が返されます:
+-----------------------------+ | export_set(5,'a','b',',',2) | +-----------------------------+ | a,b | +-----------------------------+6 をバイナリ値に変換し、右から左へ最初の 10 ビットを取り出します。1 を
1に、0 を0に置き換え、1と0をカンマ (,) で区切ります。文は以下のとおりです:SELECT export_set(6,'1','0',',',10);次の結果が返されます:
+------------------------------+ | export_set(6,'1','0',',',10) | +------------------------------+ | 0,1,1,0,0,0,0,0,0,0 | +------------------------------+
FIELD
FIELD(str, str 1, str 2,..., str n);説明:
strがstr 1、str 2、...、str nのリスト内で何番目にあるかのインデックスを返します。strが見つからない場合は、0が返されます。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:BIGINT。
例:
SELECT FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff');次の結果が返されます:
sq+-------------------------------------------+ | FIELD('Bb', 'Aa', 'Bb', 'Cc', 'Dd', 'Ff') | +-------------------------------------------+ | 2 | +-------------------------------------------+
FIND_IN_SET
find_in_set(str, strlist) 説明:
strがstrlistのリスト内で何番目にあるかの位置を返します。strがstrlist内に存在しない場合、またはstrlistが空文字列の場合、0が返されます。strまたはstrlistパラメーターのいずれかがnullの場合、nullが返されます。入力パラメーターのデータの型:
strおよびstrlistは VARCHAR 型です。戻り値のデータの型:BIGINT。
例:
SELECT find_in_set('b','a,b,c,d');次の結果が返されます:
+----------------------------+ | find_in_set('b','a,b,c,d') | +----------------------------+ | 2 | +----------------------------+
フォーマット
format(X, D)説明:数値
Xを#,###,###.##形式にフォーマットし、D小数点以下に丸め、結果を文字列として返します。Dが0の場合、結果には小数点や小数部が含まれません。入力パラメーターのデータの型:
Xは DOUBLE 型、Dは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT format(12332.123456, 4)AS result1, format(12332.1,4)AS result2, format(12332.2,0)AS result3;次の結果が返されます:
+-------------+-------------+---------+ | result1 | result2 | result3 | +-------------+-------------+---------+ | 12,332.1235 | 12,332.1000 | 12,332 | +-------------+-------------+---------+
FROM_BASE64
from_base64(x)説明:Base64 エンコードされたパラメーター
xをデコードし、デコード結果を返します。入力パラメーターのデータの型:VARBINARY または VARCHAR。
戻り値のデータの型:VARBINARY。
例:
入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:
SELECT from_base64('Q2hpbmE=');次の結果が返されます:
+--------------------------------------------------+ | from_base64('Q2hpbmE=') | +--------------------------------------------------+ | 0x4368696E61 | +--------------------------------------------------+説明上記文の戻り値は VARBINARY 型です。元の VARCHAR 値を取得するには、以下の文を実行します:
SELECT cast(from_base64('Q2hpbmE=') AS varchar);次の結果が返されます:
+------------------------------------------+ | cast(from_base64('Q2hpbmE=') AS varchar) | +------------------------------------------+ | China | +------------------------------------------+入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:
SELECT from_base64(cast(to_base64('China') AS varbinary));次の結果が返されます:
+--------------------------------------------------------------------------------------------------------+ | from_base64(cast(to_base64('China') AS varbinary)) | +--------------------------------------------------------------------------------------------------------+ | 0x4368696E61 | +--------------------------------------------------------------------------------------------------------+
FROM_UTF8
from_utf8(x)
from_utf8(x, y)説明:
from_utf8(x):UTF-8 エンコードされたxをデコードし、デコード結果を返します。from_utf8(x, y):パラメーターxを UTF-8 文字列としてデコードし、無効な文字を指定された文字で置き換えます。説明yパラメーターは任意です。yを指定しない場合、デフォルトでが返されます。yには無効な文字自体(例:#)またはその ASCII コード(例:35)を指定できます。
入力パラメーターのデータの型:
xは VARBINARY 型、yは VARCHAR 型または BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
UTF-8 エンコードされたパラメーターをデコードし、結果を返します。文は以下のとおりです:
SELECT from_utf8(to_utf8('hello'));次の結果が返されます:
+-----------------------------+ | from_utf8(to_utf8('hello')) | +-----------------------------+ | hello | +-----------------------------+UTF-8 エンコードされていないパラメーターをデコードします。文は以下のとおりです:
SELECT from_utf8(unhex('58BF'));次の結果が返されます:
+--------------------------+ | from_utf8(unhex('58BF')) | +--------------------------+ | X | +--------------------------+UTF-8 エンコードされていないパラメーターをデコードし、無効な文字を
#で置き換えます。文は以下のとおりです:SELECT from_utf8(unhex('58BF'), '#');次の結果が返されます:
+-------------------------------+ | from_utf8(unhex('58BF'), '#') | +-------------------------------+ | X# | +-------------------------------+UTF-8 エンコードされていないパラメーターをデコードし、無効なバイトシーケンスを ASCII コード 35 の無効な文字で置き換えます。文は以下のとおりです:
SELECT from_utf8(unhex('58BF'), '35');次の結果が返されます:
+-------------------------------+ | from_utf8(unhex('58BF'), '35') | +-------------------------------+ | X# | +-------------------------------+
HEX
hex(x)説明:パラメーター
xをその 16 進文字列表現に変換します。入力パラメーターのデータの型:BIGINT または VARCHAR。
戻り値のデータの型:VARCHAR。
例:
入力値が BIGINT 型の場合、文は以下のとおりです:
SELECT hex(16);次の結果が返されます:
+---------+ | hex(16) | +---------+ | 10 | +---------+入力値が VARCHAR 型の場合、文は以下のとおりです:
SELECT hex('16');次の結果が返されます:
+-----------+ | hex('16') | +-----------+ | 3136 | +-----------+
INSTR
instr(str, substr)説明:文字列
str内での部分文字列substrの最初の出現位置を返します。入力パラメーターのデータの型:
strおよびsubstrは VARCHAR 型です。戻り値のデータの型:BIGINT。
例:
SELECT instr('foobarbar', 'bar');次の結果が返されます:
+---------------------------+ | instr('foobarbar', 'bar') | +---------------------------+ | 4 | +---------------------------+
LEFT
LEFT(str, len)説明:文字列
strの左端からlen文字を返します。strまたはlenがnullの場合、nullが返されます。入力パラメーターのデータの型:
strは VARCHAR 型、lenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT LEFT('foobarbar', 5);次の結果が返されます:
+----------------------+ | LEFT('foobarbar', 5) | +----------------------+ | fooba | +----------------------+
LENGTH または OCTET_LENGTH
length(str)
octet_length(str)説明:文字列
strの長さを返します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:BIGINT。
例:
SELECT length('aliyun');次の結果が返されます:
+------------------+ | length('aliyun') | +------------------+ | 6 | +------------------+
LIKE
expression [NOT] LIKE pattern [ESCAPE 'escape_char']説明:
LIKEオペレーターは、文字列expressionをpatternと照合します。照合に成功した場合は1を、失敗した場合は0を返します。各パラメーターの説明は以下のとおりです:patternはワイルドカードパターンです。使用可能なワイルドカードは以下のとおりです:%:任意の長さの文字列に一致します。_:1 文字に一致します。
escape_char:pattern内の%および_文字をエスケープし、エスケープ文字に続く%および_がワイルドカードとして使用されないようにします。
入力パラメーターのデータの型:
expressionおよびpatternは VARCHAR 型です。戻り値のデータの型:BIGINT。
例:
文:
SELECT 'David!' LIKE 'David_' AS result1, 'David!' NOT LIKE 'David_' AS result2, 'David!' LIKE '%D%v%' AS result3;次の結果が返されます:
+---------+---------+---------+ | result1 | result2 | result3 | +---------+---------+---------+ | 1 | 0 | 1 | +---------+---------+---------+文:
SELECT 'David_' LIKE 'David|_' ESCAPE '|';次の結果が返されます:
+----------------------------------+ | David_' LIKE 'David|_' ESCAPE '| | +----------------------------------+ | 1 | +----------------------------------+
LOCATE
locate(substr, str)
locate(substr, str, pos)説明:文字列
str内でのsubstrの最初の出現位置を返します。あるいは、str内でposから始まるsubstrの最初の出現位置を返します。substrがstr内に存在しない場合、0が返されます。substrまたはstrがnullの場合、nullが返されます。入力パラメーターのデータの型:
strおよびsubstrは VARCHAR 型、posは BIGINT 型です。戻り値のデータの型:BIGINT。
例:
文:
SELECT locate('bar', 'foobarbar');次の結果が返されます:
+----------------------------+ | locate('bar', 'foobarbar') | +----------------------------+ | 4 | +----------------------------+文:
SELECT locate('bar', 'foobarbar', 7);次の結果が返されます:
+-------------------------------+ | locate('bar', 'foobarbar', 7) | +-------------------------------+ | 7 | +-------------------------------+
LOWER または LCASE
lower(str)
lcase(str)説明:文字列
strの文字を小文字に変換します。戻り値の型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT lower('Aliyun');次の結果が返されます:
+-----------------+ | lower('Aliyun') | +-----------------+ | aliyun | +-----------------+
LPAD
lpad(str, len, padstr)説明:文字列
strをpadstrで左側から埋め、len文字の長さにし、埋められた文字列を返します。strがlenより長い場合、戻り値はlen文字に短縮されます。入力パラメーターのデータの型:
strおよびpadstrは VARCHAR 型、lenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT lpad('Aliyun',9,'#');次の結果が返されます:
+----------------------+ | lpad('Aliyun',9,'#') | +----------------------+ | ###Aliyun | +----------------------+
LTRIM
ltrim(str)説明:文字列
strの先頭のすべての空白を削除します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT ltrim(' abc');次の結果が返されます:
+----------------+ | ltrim(' abc') | +----------------+ | abc | +----------------+
MAKE_SET
make_set(bits, str 1, str 2,...);説明:セット値(サブストリングを文字で区切った文字列)を返します。セットには、対応するビットが設定されている文字列が含まれます。
str 1はビット0に対応し、str 2はビット1に対応し、以下同様です。null値はstr 1、str 2などから結果に追加されません。入力パラメーターのデータの型:
bitsは BIGINT 型、strは VARCHAR 型です。戻り値のデータの型:VARCHAR。
例:
文:
SELECT make_set(5,'hello','nice','world');次の結果が返されます:
+------------------------------------+ | make_set(5,'hello','nice','world') | +------------------------------------+ | hello,world | +------------------------------------+文:
SELECT make_set(1 | 4,'hello','nice',NULL,'world')AS result;次の結果が返されます:
+--------+ | result | +--------+ | hello | +--------+
MD5_MUR
MD5_MUR(x)説明:入力パラメーター x の MD5 ハッシュを計算し、その後 MurmurHash3 アルゴリズムを使用してハッシュを LONG ハッシュ値に変換します。この関数は CRC32 アルゴリズムよりも衝突率が低くなります。
入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:LONG。
バージョン要件:クラスターのカーネルバージョンが 3.2.5 以降である必要があります。
使用例:
文:
SELECT MD5_MUR('TEST') as result;次の結果が返されます:
+--------------------------+ | result | +--------------------------+ | -6711128042951586494 | +--------------------------+
MID
mid(str, pos, len)説明:この関数は SUBSTR または SUBSTRING と同等であり、文字列
strのposからlen文字の部分文字列を返します。入力パラメーターのデータの型:
strは VARCHAR 型、posおよびlenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
文:
SELECT mid('Quadratically',5,6);次の結果が返されます:
+--------------------------+ | mid('Quadratically',5,6) | +--------------------------+ | ratica | +--------------------------+文:
SELECT mid('Sakila', -5, 3);次の結果が返されます:
+----------------------+ | mid('Sakila', -5, 3) | +----------------------+ | aki | +----------------------+
OCT
oct(N)説明:整数
Nの 8 進文字列表現を返します。Nがnullの場合、nullが返されます。入力パラメーターのデータの型:BIGINT。
戻り値のデータの型:VARCHAR。
例:
SELECT oct(12);次の結果が返されます:
+---------+ | oct(12) | +---------+ | 14 | +---------+
ORD
ord(x)説明:文字列
xの先頭文字がマルチバイト文字の場合、その文字のコードを返します。入力パラメーターのデータの型:VARBINARY または VARCHAR。
戻り値のデータの型:LONG。
例:
入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:
SELECT ord('China');次の結果が返されます:
+--------------+ | ord('China') | +--------------+ | 67 | +--------------+入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:
SELECT ord(cast('China' AS varbinary));次の結果が返されます:
+---------------------------------+ | ord(cast('China' AS varbinary)) | +---------------------------------+ | 67 | +---------------------------------+
POSITION
position(substr IN str);説明:文字列
str内での部分文字列substrの最初の出現位置を返します。位置は1から開始します。部分文字列が見つからない場合、0が返されます。入力パラメーターのデータの型:
substrおよびstrは VARCHAR 型です。戻り値のデータの型:BIGINT。
例:
SELECT position('bar' in 'foobarbar');次の結果が返されます:
+--------------------------------+ | position('bar' in 'foobarbar') | +--------------------------------+ | 4 | +--------------------------------+
REPEAT
repeat(str, count);説明:
strをcount回繰り返した文字列を返します。count<1の場合、空文字列が返されます。strまたはcountがnullの場合、nullが返されます。入力パラメーターのデータの型:
strは VARCHAR 型、countは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
文:
SELECT repeat('a', 3);次の結果が返されます:
+----------------+ | repeat('a', 3) | +----------------+ | aaa | +----------------+文:
SELECT repeat('abc', null);次の結果が返されます:
+---------------------+ | repeat('abc', null) | +---------------------+ | NULL | +---------------------+文:
SELECT repeat(null, 3);次の結果が返されます:
+-----------------+ | repeat(null, 3) | +-----------------+ | NULL | +-----------------+
REPLACE
replace(str, from_str, to_str);説明:
str内のfrom_strのすべての出現箇所をto_strで置き換えます。入力パラメーターのデータの型:
str、from_str、to_strは VARCHAR 型です。戻り値のデータの型:VARCHAR。
例:
SELECT replace('WWW.aliyun.com', 'W', 'w');次の結果が返されます:
+-------------------------------------+ | replace('WWW.aliyun.com', 'W', 'w') | +-------------------------------------+ | www.aliyun.com | +-------------------------------------+
REVERSE
reverse(str);説明:文字列
strを逆順に並べ替えた文字列を返します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT reverse('123456');次の結果が返されます:
+-------------------+ | reverse('123456') | +-------------------+ | 654321 | +-------------------+
RIGHT
RIGHT(str, len);説明:文字列
strの右端からlen文字を返します。strまたはlenがnullの場合、nullが返されます。入力パラメーターのデータの型:
strは VARCHAR 型、lenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT RIGHT('abc',3);次の結果が返されます:
+----------------+ | RIGHT('abc',3) | +----------------+ | abc | +----------------+
RLIKE または REGEXP
expression RLIKE pattern;
expression REGEXP pattern;説明:文字列
expressionが正規表現patternと一致する場合、1を返し、一致しない場合は0を返します。expressionまたはpatternがnullの場合、nullが返されます。入力パラメーターのデータの型:
expressionおよびpatternは VARCHAR 型です。戻り値のデータの型:BOOLEAN。
例:
文:
SELECT 'Michael!' REGEXP '.*';次の結果が返されます:
+----------------------+ | Michael!' REGEXP '.* | +----------------------+ | 1 | +----------------------+文:
SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';次の結果が返されます:
+-------------------------------------+ | new*\n*line' REGEXP 'new\\*.\\*line | +-------------------------------------+ | 0 | +-------------------------------------+文:
SELECT 'c' REGEXP '^[a-d]';次の結果が返されます:
+-------------------+ | c' REGEXP '^[a-d] | +-------------------+ | 1 | +-------------------+
RPAD
rpad(str, len, padstr)説明:文字列
strをpadstrで右側から埋め、len文字の長さにし、埋められた文字列を返します。strがlenより長い場合、戻り値はlen文字に短縮されます。入力パラメーターのデータの型:
strおよびpadstrは VARCHAR 型、lenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT rpad('Aliyun',9,'#');次の結果が返されます:
+----------------------+ | rpad('Aliyun',9,'#') | +----------------------+ | Aliyun### | +----------------------+
RTRIM
rtrim(str)説明:文字列
strの末尾のすべての空白を削除します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT rtrim('barbar ');次の結果が返されます:
+--------------------+ | rtrim('barbar ') | +--------------------+ | barbar | +--------------------+
SPACE
space(N);説明:指定された数の空白からなる文字列を返します。
説明この関数は
contact()関数と併用して結果を表示できます。入力パラメーターのデータの型:BIGINT。
戻り値のデータの型:VARCHAR。
例:
SELECT concat("#", space(6), "#");次の結果が返されます:
+----------------------------+ | concat("#", space(6), "#") | +----------------------------+ | # # | +----------------------------+
SPLIT
split(string, delimiter)説明:
stringをdelimiterで分割し、配列を返します。入力パラメーターのデータの型:
stringおよびdelimiterは VARCHAR 型です。戻り値のデータの型:ARRAY<varchar>。
例:
SELECT split('1#2#3', '#'), split('#1#2#3#', '#'), split('123', '#');次の結果が返されます:
+---------------------+-----------------------+-------------------+ | split('1#2#3', '#') | split('#1#2#3#', '#') | split('123', '#') | +---------------------+-----------------------+-------------------+ | ["1","2","3"] | ["","1","2","3",""] | ["123"] | +---------------------+-----------------------+-------------------+
SPLIT_PART
split_part(string, delimiter, index)説明:
stringをdelimiterで分割し、配列インデックスindexの位置にある部分文字列を返します。indexは 1 から開始します。インデックスがフィールド数より大きい場合、NULL が返されます。入力パラメーターのデータの型:
stringおよびdelimiterは VARCHAR 型、indexは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT split_part('A#B#C', '#', 2), split_part('A#B#C', '#', 4);次の結果が返されます:
+-----------------------------+-----------------------------+ | split_part('A#B#C', '#', 2) | split_part('A#B#C', '#', 4) | +-----------------------------+-----------------------------+ | B | NULL | +-----------------------------+-----------------------------+
SPLIT_TO_MAP
split_to_map(string, entryDelimiter, keyValueDelimiter)説明:文字列を
entryDelimiterおよびkeyValueDelimiterを使用して分割し、mapを返します。entryDelimiterは文字列をkey-valueペアに分割します。keyValueDelimiterは各key-valueペアをkeyとvalueに分割します。入力パラメーターのデータの型:
string、entryDelimiter、keyValueDelimiterは VARCHAR 型です。戻り値のデータの型:MAP<varchar, varchar>。
例:
SELECT split_to_map('k1:v1,k2:v2', ',', ':'),split_to_map('', ',', ':');次の結果が返されます:
+---------------------------------------+----------------------------+ | split_to_map('k1:v1,k2:v2', ',', ':') | split_to_map('', ',', ':') | +---------------------------------------+----------------------------+ | {"k1":"v1","k2":"v2"} | {} | +---------------------------------------+----------------------------+
STRCMP
strcmp(str 1, str 2);説明:文字列
str 1とstr 2が同一の場合、関数は0を返します。str 1が現在のソート順でstr 2より小さい場合、-1を返します。それ以外の場合は1を返します。入力パラメーターのデータの型:
str 1およびstr 2は VARCHAR 型です。戻り値のデータの型:BIGINT。
例:
SELECT strcmp('text', 'text2');次の結果が返されます:
+-------------------------+ | strcmp('text', 'text2') | +-------------------------+ | -1 | +-------------------------+
SUBSTR または SUBSTRING
substr(str, pos)
substr(str FROM pos)
substr(str, pos, len)
substr(str FROM pos FOR len)
substring(str, pos)
substring(str FROM pos)
substring(str, pos, len)
substring(str FROM pos FOR len)説明:
SUBSTRING(varchar str, bigint pos)およびSUBSTRING(varchar str FROM pos)は、位置posから文字列の末尾までの部分文字列を返します。pos<0の場合、開始位置は文字列の末尾から逆方向にカウントされます。SUBSTRING(varchar str, bigint pos, bigint len)およびSUBSTRING(varchar str FROM pos FOR len)は、位置posから長さlenの部分文字列を返します。pos<0の場合、開始位置は文字列の末尾から逆に数えられます。
入力パラメーターのデータの型:
strは VARCHAR 型、posおよびlenは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
文:
SELECT substr('helloworld', 6);次の結果が返されます:
+-------------------------+ | substr('helloworld', 6) | +-------------------------+ | world | +-------------------------+文:
SELECT substr('helloworld' FROM 6);次の結果が返されます:
+-----------------------------+ | substr('helloworld' FROM 6) | +-----------------------------+ | world | +-----------------------------+文:
SELECT substr('helloworld', 6, 3);次の結果が返されます:
+----------------------------+ | substr('helloworld', 6, 3) | +----------------------------+ | wor | +----------------------------+文:
SELECT substr('helloworld' from 6 for 3);次の結果が返されます:
+-----------------------------------+ | substr('helloworld' FROM 6 FOR 3) | +-----------------------------------+ | wor | +-----------------------------------+
SUBSTRING_INDEX
substring_index(str, delim, count)説明:文字列
strからデリミタdelimの count 番目の出現箇所の前後いずれかの部分文字列を返します。count>0の場合、デリミタ (delim) の count 番目の出現箇所より左側のすべての文字列が返されます。カウントは左端から開始します。count<0の場合、デリミタ (delim) の count 番目の出現箇所より右側のすべての文字列が返されます。カウントは右端から開始します。SUBSTRING_INDEX関数はdelimを大文字・小文字を区別して検索します。入力パラメーターのデータの型:
strおよびdelimは VARCHAR 型、countは BIGINT 型です。戻り値のデータの型:VARCHAR。
例:
SELECT substring_index('www.aliyun.com', '.', 2);次の結果が返されます:
+-------------------------------------------+ | substring_index('www.aliyun.com', '.', 2) | +-------------------------------------------+ | www.aliyun | +-------------------------------------------+
TO_BASE64
to_base64(x)説明:パラメーター
xの Base64 エンコード形式を返します。入力パラメーターのデータの型:VARBINARY または VARCHAR。
戻り値のデータの型:VARCHAR。
例:
入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:
SELECT to_base64('China');次の結果が返されます:
+--------------------+ | to_base64('China') | +--------------------+ | Q2hpbmE= | +--------------------+入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:
SELECT to_base64(cast('China' AS varbinary));次の結果が返されます:
+---------------------------------------+ | to_base64(cast('China' AS varbinary)) | +---------------------------------------+ | Q2hpbmE= | +---------------------------------------+
TO_UTF8
to_utf8(x)説明:パラメーター
xの UTF-8 エンコード形式を返します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT from_utf8(to_utf8('China'));次の結果が返されます:
+-----------------------------+ | from_utf8(to_utf8('China')) | +-----------------------------+ | China | +-----------------------------+
TRIM
trim([remstr FROM] str)
trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str)説明:文字列
strを先頭および末尾の空白を削除するか、オプションのremstr文字列と一致する文字を削除することでトリミングします。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
文:
SELECT trim(' bar ');次の結果が返されます:
+------------------+ | trim(' bar ') | +------------------+ | bar | +------------------+文:
SELECT trim(BOTH 'x' FROM 'xxxbarxxx');次の結果が返されます:
+---------------------------------+ | trim(BOTH 'x' FROM 'xxxbarxxx') | +---------------------------------+ | bar | +---------------------------------+文:
SELECT trim(LEADING 'x' FROM 'xxxbarxxx');次の結果が返されます:
+------------------------------------+ | trim(LEADING 'x' FROM 'xxxbarxxx') | +------------------------------------+ | barxxx | +------------------------------------+文:
SELECT trim(TRAILING 'x' from 'xxxbarxxx');次の結果が返されます:
+-------------------------------------+ | trim(TRAILING 'x' from 'xxxbarxxx') | +-------------------------------------+ | xxxbar | +-------------------------------------+
UPPER または UCASE
upper(str)
ucase(str)説明:文字列
strの文字を大文字に変換します。入力パラメーターのデータの型:VARCHAR。
戻り値のデータの型:VARCHAR。
例:
SELECT upper('Aliyun');次の結果が返されます:
+-----------------+ | upper('Aliyun') | +-----------------+ | ALIYUN |
UNHEX
unhex(x);説明:パラメーター
x内の各 16 進数字ペアを数値として解釈し、その数値が表す文字に変換します。入力パラメーターのデータの型:VARBINARY または VARCHAR。
戻り値のデータの型:VARBINARY。
説明デコード後の戻り値は VARBINARY 型です。結果を VARCHAR 型に変換するには、以下のいずれかの方法を使用します:
UNHEX の入力値に 16 進数以外の数字が含まれる場合、NULL が返されます。
例:
入力パラメーターが VARCHAR 型の場合、文は以下のとおりです:
SELECT unhex(hex('China'));次の結果が返されます:
+------------------------------------------+ | unhex(hex('China')) | +------------------------------------------+ | China | +------------------------------------------+説明上記文の戻り値は VARBINARY 型です。元の VARCHAR 値を取得するには、以下の文を実行します:
SELECT cast(unhex(hex('China')) AS varchar);次の結果が返されます:
+--------------------------------------+ | cast(unhex(hex('China')) AS varchar) | +--------------------------------------+ | China | +--------------------------------------+入力パラメーターが VARBINARY 型の場合、文は以下のとおりです:
SELECT unhex(cast(hex('China') AS varbinary));次の結果が返されます:
+------------------------------------------+ | unhex(cast(hex('China') AS varbinary)) | +------------------------------------------+ | China | +------------------------------------------+