本トピックでは、Hologres がサポートする文字列関数について説明し、その使用例を示します。
PostgreSQL 互換の文字列関数の詳細については、「PostgreSQL Functions」をご参照ください。
種類 | 関数 | 機能 |
文字列の連結、分割、パディング | 文字列の両端から指定された文字を削除します。 | |
2 つ以上の文字列値を連結し、1 つの文字列として返します。 | ||
最初の引数を区切り文字として使用し、それ以外のすべての引数を連結します。 | ||
文字列の先頭から指定された文字数を抽出します。 | ||
複数行にわたる同じ列の値を集約して 1 つの文字列にします。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。 | ||
文字列の左側に指定された文字を埋め込み、指定された全長にします。 | ||
文字列の左側 (先頭) から指定された文字を削除します。 | ||
文字列を正規表現と照合し、一致した部分を結果の配列で返します。 | ||
文字列の右側に指定された文字を埋め込み、指定された全長にします。 | ||
文字列の右側 (末尾) から指定された文字を削除します。 | ||
文字列の先頭、末尾、または両端から指定された文字を削除します。 | ||
複数行にわたる同じ列の値を集約して 1 つの文字列にします。 | ||
指定された区切り文字で文字列を分割し、 | ||
2 つの文字列を連結します。 | ||
指定された開始位置から文字列の末尾まで、または指定された長さの部分文字列を抽出します。 | ||
指定されたルールに基づいて対象の文字列から部分文字列を抽出します。 | ||
その他の文字列関数 | 文字列の最初の文字の ASCII コードを返します。 | |
文字列の文字長を返します。 | ||
指定されたコード値に対応する文字を返します。 | ||
各単語の最初の文字を大文字に、残りを小文字に変換します。 | ||
対象の文字列の指定された範囲内で部分文字列の位置を検索します。見つかった場合はその位置を返し、見つからない場合は 0 を返します。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。 | ||
文字列の文字数を返します。 | ||
文字列を小文字に変換します。 | ||
文字列の MD5 ハッシュを計算します。結果は 16 進数形式で返されます。 | ||
文字列のバイト数を返します。 | ||
文字列を反転させます。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。 | ||
対象の文字列内で部分文字列の位置を検索します。 | ||
SQL 識別子のルールに準拠した文字列を解析します。 | ||
文字列を引用符で囲み、有効な SQL 識別子にします。 | ||
文字列を有効な SQL 文字列定数に変換します。 | ||
文字列を指定された回数繰り返します。 | ||
ソース文字列内で指定された部分文字列のすべての出現箇所を検索し、別の文字列に置換します。 | ||
POSIX 正規表現を使用して、部分文字列を新しい部分文字列に置換します。 | ||
正規表現を使用して文字列を分割し、結果を配列として返します。 | ||
文字列分割関数は、文字列を複数の行に分割し、行から列への変換を可能にします。 | ||
数式が配置されている行番号を返します。この関数は Hologres V1.3 以降でのみサポートされています。 | ||
対象の文字列が指定されたプレフィックスで始まるかどうかを確認します。 | ||
対象の文字列内で部分文字列の位置を検索します。 | ||
数値をその 16 進数表現に変換します。 | ||
文字列を数値型に変換します。 | ||
文字列内の文字を指定された文字に置換します。 | ||
文字列を大文字に変換します。 |
文字列の連結、分割、パディング
STRING || STRING
説明:2 つの文字列を連結します。
<string_value1> TEXT || <string_value2> TEXTパラメーター
string_value1 と string_value2:連結する文字列式。
戻り値
TEXT 型を返します。
例
--戻り値: HologreSQL SELECT 'Holo' || 'greSQL';
CONCAT
説明:2 つ以上の文字列値を連結し、1 つの文字列として返します。
CONCAT(<str1> TEXT, <str2> TEXT, ..., <strN> TEXT)パラメーター
str1,...,strN:連結する文字列。説明NULL の引数は無視されます。
戻り値
TEXT 型を返します。
例
SELECT CONCAT('abcde', 2, NULL, 22);コマンドは次の結果を返します。
concat --------- abcde222
CONCAT_WS
説明:最初の引数以外のすべての引数を連結します。最初の引数は区切り文字として使用されます。
CONCAT_WS(<sep> TEXT, str "any" [, str "any" [, ...] ])説明`any` データ型は、すべてのデータ型がサポートされていることを示します。
パラメーター
sep:必須。文字列の間に挿入する区切り文字。
説明値が NULL の場合、関数は NULL を返します。
str:必須。連結する文字列。
説明NULL の引数は無視されます。
戻り値
TEXT 型を返します。
例
SELECT CONCAT_WS(',', 'abcde', 2, NULL, 22);コマンドは次の結果を返します。
concat_ws ---------- abcde,2,22
LISTAGG
説明:複数行にわたる同じ列の値を集約して 1 つの文字列にします。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。
LISTAGG(<str1> TEXT [, <str2> TEXT])パラメーター
str1:必須。集約する文字列式または列名。
str2:任意。区切り文字。
戻り値
TEXT 型を返します。
例
例 1
--戻り値: hologres SELECT LISTAGG(t) FROM (VALUES('holo'), ('gres')) AS l(t);例 2
--戻り値: holo.gres SELECT LISTAGG(t, '.') FROM (VALUES('holo'), ('gres')) AS l(t);
SUBSTRING
説明:指定されたルールに基づいて対象の文字列から部分文字列を抽出します。
文字列の指定された位置から部分文字列を抽出します。
SUBSTRING(<str> TEXT [FROM <num_start> INT] [FOR <num_end> INT])POSIX 正規表現に一致する部分文字列を抽出します。
SUBSTRING(<str> TEXT FROM <pattern> TEXT)SQL 正規表現に一致する部分文字列を抽出します。
SUBSTRING(<str> TEXT FROM <pattern> TEXT FOR <escape> TEXT )
パラメーター
str:必須。対象の文字列。
num_start と num_end:任意。開始位置と終了位置。
pattern:必須。部分文字列を照合および抽出する方法を定義する正規表現。
escape:必須。エスケープ文字。
説明正規表現では、
.、*、+などの一部の文字には特別な意味があります。これらの文字をリテラルとして照合するには、エスケープ文字を前に付ける必要があります。
戻り値
TEXT 型を返します。
例
例 1:文字列の指定された位置から部分文字列を抽出します。
SELECT SUBSTRING('Thomas' FROM 2 FOR 3);コマンドは次の結果を返します。
substring ---------- hom例 2:POSIX 正規表現に一致する部分文字列を抽出します。
SELECT SUBSTRING('Thomas' FROM '...$');コマンドは次の結果を返します。
substring ---------- mas例 3:SQL 正規表現に一致する部分文字列を抽出します。
SELECT SUBSTRING('Thomas' FROM '%#"o_a#"_' FOR '#');コマンドは次の結果を返します。
substring ---------- oma
REGEXP_MATCH
説明:文字列を正規表現と照合し、一致した部分を結果の配列で返します。
REGEXP_MATCH(<str> TEXT, <pattern> TEXT)パラメーター
str:必須。照合する文字列。
pattern:必須。正規表現。
戻り値
ARRAY 型を返します。
例
SELECT regexp_match('foobarbequebaz', '(bar)(beque)');コマンドは次の結果を返します。
regexp_match ------------ {bar,beque}
SUBSTR
説明
指定された開始位置から文字列の末尾までの部分文字列を抽出します。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。
SUBSTR(<str> TEXT, <num_start> INTEGER)パラメーター:
str:必須。対象の文字列。
num_start:必須。部分文字列抽出の開始位置。
指定された開始位置から指定された長さの部分文字列を抽出します。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。
SUBSTR(<str> TEXT, <num_start> INTEGER, <len> INTEGER)パラメーター:
str:必須。対象の文字列。
num_start:必須。部分文字列抽出の開始位置。
len:部分文字列の長さを返します。
戻り値
TEXT 型を返します。
例
例 1:4 文字目から文字列の末尾までの部分文字列を抽出します。
--戻り値: ogres SELECT SUBSTR('Hologres', 4);例 2:2 文字目から 5 文字を抽出します。
--戻り値: ologr SELECT SUBSTR('Hologres', 2, 5);
SPLIT_PART
説明:指定された区切り文字で文字列を分割し、
num番目のセグメントを返します。SPLIT_PART(<str> TEXT, <delimiter> TEXT, <num> INT)パラメーター
str:必須。分割する対象の文字列。
delimiter:必須。分割に使用する区切り文字。
num:必須。どのセグメントを返すかを指定する整数。インデックスは 1 から始まります。
戻り値
TEXT 型を返します。`num` がセグメント数より大きい場合、関数は NULL を返します。
例
CREATE TABLE split_part_test ( a text ); INSERT INTO split_part_test VALUES ('a/b/c/d/e'), ('a1/b1/c1/d1/e1'); SELECT split_part(a, '/', 2) FROM split_part_test;コマンドは次の結果を返します。
split_part ---------- b b1
STRING_AGG
説明:複数行にわたる同じ列の値を集約して 1 つの文字列にします。
STRING_AGG(expression [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ]`FILTER` 句は Hologres V1.3 以降でのみサポートされています。
説明この機能を使用するには、インスタンスをアップグレードする必要があります。詳細については、「インスタンスのアップグレード」をご参照ください。また、Hologres DingTalk グループに参加してサポートを受けることもできます。グループへの参加方法の詳細については、「オンラインサポートの利用方法」をご参照ください。
パラメーター
expression:必須。文字列に連結する式または列名。
order_by_clause:任意。連結前に `expression` 内の値のソート順を指定します。このパラメーターが指定されていない場合、データベースは任意の順序でソートすることがあります。
FILTER ( WHERE filter_clause ):任意。集約に含める行をフィルターする条件を指定します。
戻り値
TEXT 型を返します。
例
例 1
CREATE TABLE city_test ( country text, city text ); INSERT INTO city_test VALUES ('中国', '上海'), ('中国', '台湾'), ('日本', '東京'), ('フランス', 'パリ'), ('イギリス', 'ロンドン'); SELECT STRING_AGG(city, ',') FROM city_test;コマンドは次の結果を返します。
string_agg ------------------------ 上海,台湾,東京,パリ,ロンドン例 2
CREATE TABLE name_text ( student_id int, name text); INSERT INTO name_text VALUES ( 1, '田中一郎'), ( 2, '鈴木二郎'), ( 3, '佐藤三郎'), ( 4, '高橋四郎' ); SELECT STRING_AGG(name, ',') FILTER (WHERE student_id > 2) FROM name_text;コマンドは次の結果を返します。
string_agg ---------- Wang Wu,Saturday
LEFT
説明:文字列の先頭から指定された文字数を抽出します。
LEFT(<str> TEXT, <num> INT)パラメーター
str:必須。対象の文字列。
num:必須。文字列の先頭から抽出する文字数を指定する整数。
`num` が負の場合、関数は最後の
-num文字を除くすべての文字を返します。
戻り値
TEXT 型を返します。
例
SELECT LEFT('hologres', 4);コマンドは次の結果を返します。
left ---- holo
RIGHT
説明:文字列の末尾から指定された文字数を抽出します。
RIGHT(<str> TEXT, <num> INT)パラメーター
str:必須。対象の文字列。
num:必須。文字列の末尾から抽出する文字数を指定する整数。
`num` が負の場合、関数は最初の
-num文字を除くすべての文字を返します。
戻り値
TEXT 型を返します。
例
SELECT RIGHT('hologres', 4);コマンドは次の結果を返します。
right ---------- gres
TRIM
説明:文字列の先頭、末尾、または両端から指定された文字を削除します。
TRIM([leading | trailing | both] [<characters> TEXT] FROM STRING)パラメーター
削除位置。デフォルトでは、文字は両端から削除されます。有効な値は次のとおりです:
leading:任意。文字列の先頭 (左側) からのみ指定された文字を削除します。
trailing:任意。文字列の末尾 (右側) から指定された文字を削除します。
both:任意。文字列の両端から指定された文字を削除します。
characters:任意。削除する文字のセット。
string:必須。対象の文字列。
戻り値
TEXT 型を返します。
例
--戻り値: Tom select TRIM(BOTH 'xyz' FROM 'yxTomxx');
BTRIM
説明:文字列の両端から指定された文字を削除します。
BTRIM(<str> TEXT [, <characters> TEXT])パラメーター
str:必須。対象の文字列。
characters:任意。対象の文字列の両端から削除する文字のセット。
説明このパラメーターは、文字セット内の各文字を個別に照合し、文字列全体として照合するわけではありません。
`characters` パラメーターが指定されていない場合、デフォルトでスペースになります。
戻り値
TEXT 型を返します。
例
--戻り値: trim SELECT BTRIM('xyxtrimyyx', 'xyz');
LTRIM
説明:文字列の左側 (先頭) から指定された文字を削除します。
LTRIM(<str> TEXT [, <characters> TEXT])パラメーター
str:必須。対象の文字列。
characters:任意。対象の文字列の左側 (先頭) から削除する文字のセット。
説明このパラメーターは、文字セット内の各文字を個別に照合し、文字列全体として照合するわけではありません。
`characters` パラメーターが指定されていない場合、デフォルトでスペースになります。
戻り値
TEXT 型を返します。
例
-- 戻り値: test SELECT LTRIM('zzzytest', 'xyz');
RTRIM
説明:文字列の右側 (末尾) から指定された文字を削除します。
RTRIM(<str> TEXT [, <characters> TEXT])パラメーター
str:必須。対象の文字列。
characters:任意。対象の文字列の右側 (末尾) から削除する文字のセット。`characters` パラメーターが指定されていない場合、デフォルトでスペースになります。
説明このパラメーターは、文字セット内の各文字を個別に照合し、文字列全体として照合するわけではありません。
戻り値
TEXT 型を返します。
例
-- 戻り値: test SELECT RTRIM('testxxzx', 'xyz');
LPAD
説明:文字列の左側に指定された文字を埋め込み、指定された全長にします。
LPAD(<str> TEXT, <length> INT [, <fill> TEXT])パラメーター
str:必須。対象の文字列。
length:必須。結果の文字列の全長。
説明対象の文字列が `length` より長い場合、関数は文字列を右から指定された長さに切り詰めます。
fill:任意。埋め込みに使用する文字。このパラメーターが指定されていない場合、デフォルトでスペースになります。
戻り値
TEXT 型を返します。
例
--戻り値: xyxhi SELECT LPAD('hi', 5, 'xy');
RPAD
説明:文字列の右側に指定された文字を埋め込み、指定された全長にします。
RPAD(<str> TEXT, <length> INT [, <fill> TEXT])パラメーター
str:必須。対象の文字列。
length:必須。結果の文字列の全長。
説明対象の文字列が `length` より長い場合、関数は文字列を右から指定された長さに切り詰めます。
fill:任意。埋め込みに使用する文字。このパラメーターが指定されていない場合、デフォルトでスペースになります。
戻り値
TEXT 型を返します。
例
--戻り値: hixyx SELECT RPAD('hi', 5, 'xy');
その他の文字列関数
TO_NUMBER
説明:文字列を数値型に変換します。
TO_NUMBER(<str1> TEXT, <str2> TEXT)パラメーター
str1:変換するテキスト文字列。
str2:フォーマットモデル。このパラメーターは、最初のパラメーターのテキストを解析して数値に変換する方法を指定します。
戻り値
NUMERIC 型を返します。
例
--戻り値: -12454.8 SELECT TO_NUMBER('12,454.8-', '99G999D9S');
REPLACE
説明:ソース文字列内で指定された部分文字列のすべての出現箇所を検索し、別の指定された文字列に置換します。
REPLACE(<str> TEXT, <old_str> TEXT, <new_str> TEXT)パラメーター
str:必須。対象の文字列。
old_str:必須。置換される部分文字列。
new_str:必須。置換後の文字列。
戻り値
TEXT 型を返します。
例
CREATE TABLE animal_test ( animal text, color text ); INSERT INTO animal_test VALUES ('犬', '白'), ('猫', '白'), ('虎', '黄'); SELECT animal, REPLACE(color, '白', '多色') FROM animal_test;コマンドは次の結果を返します。
animal | replace ------------------- 犬 | 多色 猫 | 多色 虎 | 黄
REGEXP_REPLACE
説明:POSIX 正規表現を使用して、部分文字列を新しい部分文字列に置換します。
REGEXP_REPLACE(<str> TEXT, <regex> TEXT, <replacement> TEXT [, <flags> TEXT])パラメーター
str:必須。変更する対象の文字列。
regex:必須。正規表現。
replacement:必須。置換後の文字列。
flags:任意。正規表現の照合フラグを指定します。
戻り値
TEXT 型を返します。
例:
CREATE TABLE a_test ( a text ); INSERT INTO a_test VALUES ('Abcd1234abCd'); SELECT REGEXP_REPLACE(a, '1234.', '77', 'ig') FROM a_test;コマンドは次の結果を返します:
regexp_replace -------------- Abcd77bCd
PLVSTR.RVRS
説明:文字列を反転させます。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。
指定された開始位置と終了位置の間の文字列の一部を反転させます。
PLVSTR.RVRS(<str> TEXT, <start> INTEGER, <end> INTEGER)指定された位置から末尾までの文字列を反転させます。
PLVSTR.RVRS(<str> TEXT, <start> INTEGER)文字列全体を反転させます。
PLVSTR.RVRS(<str> TEXT)
戻り値
TEXT 型を返します。
例
例 1:指定された開始位置から指定された終了位置までの文字列の一部を反転させます。
-- 戻り値: rg SELECT PLVSTR.RVRS('Hologres', 5,6);例 2:指定された位置から末尾までの文字列を反転させます。
-- 戻り値: sergo SELECT PLVSTR.RVRS('Hologres', 4);例 3:文字列全体を反転させます。
-- 戻り値: sergoloH SELECT PLVSTR.RVRS('Hologres');
CHAR_LENGTH
説明:文字列の文字長を返します。
CHAR_LENGTH(<str> TEXT)戻り値
INT 型を返します。
例
--戻り値: 4 SELECT CHAR_LENGTH('jose');
LENGTH
説明:文字列の文字数を返します。UTF-8 文字セットを使用する場合、漢字、数字、または文字は 1 文字としてカウントされます。
LENGTH(<str> TEXT)戻り値
INT 型を返します。
例
--戻り値: 4 SELECT LENGTH('jose');説明LENGTH関数の結果はCHAR_LENGTH関数と同じです。
LOWER
説明:文字列を小文字に変換します。
LOWER(<str> TEXT)戻り値
TEXT 型を返します。
例
-- 戻り値: tom SELECT LOWER('TOM');
UPPER
説明:文字列を大文字に変換します。
UPPER(<str> TEXT)戻り値の説明
TEXT 型を返します。
例
-- 戻り値: TOM SELECT UPPER('tom');
INITCAP
説明:各単語の最初の文字を大文字に、残りを小文字に変換します。
INITCAP(<str> TEXT)説明単語とは、英数字以外の文字で区切られた英数字のシーケンスです。
戻り値
TEXT 型を返します。
例
-- 戻り値: Hi Thomas SELECT INITCAP('hi THOMAS');
OCTET_LENGTH
説明:文字列のバイト数を返します。
OCTET_LENGTH(<str> TEXT)戻り値
INT 型を返します。
例
--戻り値: 4 SELECT OCTET_LENGTH('jose');
POSITION
説明:対象の文字列内で部分文字列の位置を検索します。
POSITION(<substr> TEXT IN <str> TEXT)パラメーター
substr:必須。部分文字列。
str パラメーターは対象の文字列を指定します。
戻り値
INT 型を返します。
例
--戻り値: 3 SELECT POSITION('om' IN 'Thomas');
STRPOS
説明:対象の文字列内で部分文字列の位置を検索します。
STRPOS(<str> TEXT, <substr> TEXT)パラメーター
str:必須。対象の文字列。
substr:必須。部分文字列。
戻り値
INT 型を返します。
例
--戻り値: 2 SELECT STRPOS('high', 'ig');
INSTR
説明:対象の文字列の指定された範囲内で部分文字列の位置を検索します。関数は、部分文字列が見つかった場合はその位置を返し、見つからなかった場合は 0 を返します。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。
INSTR(<str> TEXT, <patt> TEXT [, <start> INTEGER, <nth> INTEGER])パラメーター
str:必須。対象の文字列。
patt:必須。照合する部分文字列。
start:任意。照合の開始位置。このパラメーターが指定されていない場合、照合は文字列の先頭から開始されます。
nth:任意。検索する一致の出現回数。このパラメーターが指定されていない場合、関数は最初の出現を検索します。
戻り値
INT 型を返します。
例
例 1
--戻り値: 4 SELECT INSTR('Hologres', 'o',1,2);例 2
--戻り値: 2 SELECT INSTR('Hologres', 'o',1,1);例 3
--戻り値: 4 SELECT INSTR('Hologres', 'o',4);例 4
--戻り値: 2 SELECT INSTR('Hologres', 'o');
MD5
説明:文字列の MD5 ハッシュを計算します。結果は 16 進数形式で返されます。
MD5(<str> TEXT)戻り値
TEXT 型を返します。
例
--戻り値: 900150983cd24fb0d6963f7d28e17f72 SELECT MD5('abc');
PARSE_IDENT
説明:SQL 識別子のルールに準拠した文字列を解析します。
PARSE_IDENT(<quali_iden> TEXT [,...] )パラメーター
parse_ident:必須。解析する文字列。通常はデータベースオブジェクトの完全修飾識別子です。
戻り値
TEXT 型を返します。
例
--戻り値: {"SomeSchema","sometable"} SELECT PARSE_IDENT('"SomeSchema".someTable');
QUOTE_IDENT
説明:文字列を引用符で囲み、有効な SQL 識別子にします。
QUOTE_IDENT(<str> TEXT)説明文字列に非識別子文字が含まれている場合や、文字列の大文字小文字が変換される可能性がある場合に引用符を追加できます。
戻り値の説明
TEXT 型を返します。
例
--戻り値: "Foo bar" SELECT QUOTE_IDENT('Foo bar');
QUOTE_LITERAL
説明:文字列を有効な SQL 文字列定数に変換します。
QUOTE_LITERAL(<str> TEXT)戻り値
TEXT 型を返します。
例
--戻り値: 'O''Reilly' SELECT QUOTE_LITERAL(E'O\'Reilly');
ASCII
説明:文字列の最初の文字の ASCII コードを返します。
ASCII(<str> TEXT)戻り値
TEXT データ型を返します。
例
--戻り値: 120 SELECT ASCII('x');
CHR
説明:指定されたコード値に対応する文字を返します。
CHR(<num> INT)戻り値の説明
TEXT 型を返します。
例
--戻り値: A SELECT CHR(65);
REPEAT
説明:文字列を指定された回数繰り返します。
REPEAT(<str> TEXT, <number> INT)パラメーター
str:必須。対象の文字列。
number:必須。対象の文字列を繰り返す回数。
戻り値の説明
TEXT 型を返します。
例
--戻り値: PgPgPgPg SELECT REPEAT('Pg', 4);
STARTS_WITH
説明:対象の文字列が指定されたプレフィックスで始まるかどうかを確認します。
STARTS_WITH(<str> TEXT, <prefix> TEXT)パラメーター
str:必須。対象の文字列。
prefix:必須。プレフィックス文字列。
戻り値
BOOLEAN 型を返します。対象の文字列がプレフィックスで始まる場合は `t` (true) を、そうでない場合は `f` (false) を返します。
例
--戻り値: t SELECT STARTS_WITH('alphabet', 'alph');
REGEXP_SPLIT_TO_TABLE
説明:分割されたデータを複数の行に変換し、行から列への変換をサポートする文字列分割関数です。
REGEXP_SPLIT_TO_TABLE(<str> TEXT, <pattern> TEXT)パラメーター
str:必須。分割する文字列。
pattern:必須。文字列を分割する方法を定義する正規表現。正規表現内の特殊文字と構文は、区切り文字として機能する文字列内の位置を識別するために使用されます。
戻り値
TEXT 型を返します。
例
CREATE TABLE interests_test ( name text, intrests text ); INSERT INTO interests_test VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping'); SELECT name, REGEXP_SPLIT_TO_TABLE(intrests, ',') FROM interests_test;コマンドは次の結果を返します。
名前 | regexp_split_to_table --------------------------------- Zhang San | 歌 Zhang San | ダンス Li Si | サッカー Li Si | ランニング Li Si | 絵画 Wang Wu | 生け花 Wang Wu | 書道 Wang Wu | ピアノ演奏 Wang Wu | スリープ
REGEXP_SPLIT_TO_ARRAY
説明:正規表現を使用して文字列を分割し、結果を配列として返します。
REGEXP_SPLIT_TO_ARRAY(<str> TEXT, <pattern> TEXT)パラメーター
str:必須。分割する文字列。
pattern:必須。文字列を分割する方法を定義する正規表現。正規表現内の特殊文字と構文は、区切り文字として機能する文字列内の位置を識別するために使用されます。
戻り値
ARRAY 型を返します。
例
CREATE TABLE interests_test ( name text, intrests text ); INSERT INTO interests_test VALUES ('Zhang San', 'singing,dancing'), ('Li Si', 'soccer,running,drawing'), ('Wang Wu', 'flower arranging,calligraphy,playing piano,sleeping'); SELECT name, REGEXP_SPLIT_TO_ARRAY(intrests, ',') FROM interests_test;コマンドは次の結果を返します。
名前 | regexp_split_to_array ---------------------------------------------------------------- Zhang San | {歌,ダンス} Li Si | {サッカー,ランニング,デッサン} Wang Wu | {"フラワーアレンジメント",書道,"ピアノ演奏",スリープ}
TO_HEX
説明:数値をその 16 進数表現に変換します。
TO_HEX(<number> INT OR BIGINT)戻り値
TEXT 型を返します。
例
--戻り値: 7fffffff SELECT TO_HEX(2147483647);
TRANSLATE
説明:文字列内の文字を指定された文字に置換します。
TRANSLATE(<str> TEXT, FROM <substr> TEXT, TO <newstr> TEXT)パラメーター
str:必須。対象の文字列。
substr:必須。対象の文字列内で置換される文字のセット。
newstr:必須。置換後の文字のセット。
戻り値
TEXT 型を返します。
例
--戻り値: a2x5 SELECT TRANSLATE('12345', '143', 'ax');
ROW
説明:数式が配置されている行番号を返します。
ROW()この関数は Hologres V1.3 以降でのみサポートされています。
説明ご利用の Hologres インスタンスのバージョンが V1.3 より前の場合、「インスタンスのアップグレード」をご参照いただくか、Hologres DingTalk グループに参加してフィードバックをお寄せください。詳細については、「オンラインサポートの利用方法」をご参照ください。
戻り値
ARRAY または TEXT を返します。
例
CREATE TABLE row_test ( a text, b text ); INSERT INTO row_test VALUES ('0', '0'), ('1', '0'); SELECT a, b FROM row_test WHERE ROW (a, b) = ROW (b, a);コマンドは次の結果を返します。
a | b ------ 0 | 0