このトピックでは、Hologres でサポートされている文字列関数について説明し、文字列関数の使用方法の例を示します。
PostgreSQL と互換性のある文字列関数の使用方法の詳細については、「PostgreSQL 関数」をご参照ください。
種類 | 関数 | 説明 |
文字列の連結、分割、およびパディング | 文字列の両側から特定の文字を削除します。 | |
複数の文字列値を連結し、連続した文字列を返します。 | ||
最初のパラメーターで指定された区切り文字を使用して、他のパラメーターで指定された文字列を連結します。 | ||
文字列の先頭から指定された文字数を抽出します。 | ||
複数行の列の値を文字列に集約します。この関数は Oracle と互換性があります。この関数を使用する前に、Orafce 拡張機能をインストールする必要があります。詳細については、「サポートされている Oracle 関数」をご参照ください。 | ||
文字列の左側に特定の文字をパディングして、指定された長さにします。 | ||
文字列の左側(先頭)から特定の文字を削除します。 | ||
正規表現を使用して文字列の内容を照合します。一致条件を満たすコンテンツフラグメントが配列に表示されます。 | ||
文字列の右側に特定の文字をパディングして、指定された長さにします。 | ||
文字列の右側(末尾)から特定の文字を削除します。 | ||
文字列の先頭、末尾、または両側から特定の文字を削除します。 | ||
複数行の列の値を文字列に集約します。 | ||
特定のデリミタに基づいて文字列を分割し、 | ||
2 つの文字列を連結します。 | ||
指定された位置から文字列の末尾まで抽出された部分文字列、または指定された位置から抽出された指定された長さの部分文字列を返します。 | ||
特定のルールに一致する部分文字列を文字列から抽出します。 | ||
その他の文字列関数 | 文字列の最初の文字の ASCII 値を返します。 | |
文字数で計算された文字列の長さを返します。 | ||
エンコードされた値に一致する文字を返します。 | ||
文字列の各単語の最初の文字を大文字に変換し、各単語の他の文字を小文字に変換します。 | ||
特定の範囲に基づいて、文字列内の部分文字列の位置を返します。部分文字列が使用できない場合、この関数は 0 を返します。この関数は Oracle と互換性があります。この関数を使用する前に、Orafce 拡張機能をインストールする必要があります。詳細については、「サポートされている Oracle 関数」をご参照ください。 | ||
バイト数で計算された文字列の長さを返します。UTF-8 文字セットを使用して文字列をエンコードする場合、1 つの漢字は 3 バイトを占め、1 つの数字または文字は 1 バイトを占めます。 | ||
文字列を小文字に変換します。 | ||
文字列の MD5 ハッシュを計算します。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
説明:複数の文字列値を連結し、連続した文字列を返します。
CONCAT(<str1> TEXT, <str2> TEXT, ..., <strN> TEXT)パラメーター
str1,...,strN: 連結する文字列。説明NULL 値の文字列は無視されます。
戻り値
TEXT 型の値が返されます。
例
SELEC 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
説明:複数行の列の値を文字列に集約します。この関数は 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
説明: 特定のデリミタに基づいて文字列を分割し、
N番目のセグメントを返します。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
説明:複数行の列の値を文字列に集約します。
STRING_AGG(expression [ order_by_clause ] ) [ FILTER ( WHERE filter_clause ) ]使用上の注意:Hologres V1.3 以降でのみフィルター条件がサポートされています。
説明フィルター条件を使用する場合は、Hologres DingTalk グループに参加してアップグレードを申請するか、インスタンスを手動でアップグレードする必要があります。インスタンスを手動でアップグレードする方法の詳細については、「インスタンスのアップグレード」をご参照ください。Hologres DingTalk グループへの参加方法の詳細については、「Hologres のオンラインサポートを受ける」をご参照ください。
パラメーター
expression:必須。値を集約する式または列。
order_by_clause:オプション。値を文字列に集約する前に expression 値をソートする基になる順序。このパラメーターを指定しない場合、データベース内のデータは適切な方法でソートされる場合があります。
FILTER ( WHERE filter_clause ):オプション。値を集約する行をフィルターするために使用される条件。
戻り値
TEXT 型の値が返されます。
例
例 1
CREATE TABLE city_test ( country text, city text ); INSERT INTO city_test VALUES ('China', 'Shanghai'), ('China', 'Taipei'), ('Japan', 'Tokyo'), ('France', 'Paris'), ('Britain', 'London'); SELECT STRING_AGG(city, ',') FROM city_test;次の結果が返されます。
string_agg ------------------------ Shanghai,Taipei,Tokyo,Paris,London例 2
CREATE TABLE name_text ( student_id int, name text); INSERT INTO name_text VALUES ( 1, 'Jack'), ( 2, 'Mike'), ( 3, 'John'), ( 4, 'Saturday' ); SELECT STRING_AGG(name, ',') FILTER (WHERE student_id > 2) FROM name_text;次の結果が返されます。
string_agg ---------- John,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: 必須。返される文字列の長さ。
説明特定の文字を埋め込む文字列の長さがこのパラメーターの値を超える場合、この関数は文字列の右側を指定された長さに切り捨てます。
fill: オプション。埋め込む文字。 スペース を指定しない場合、デフォルトでスペースが使用されます。
戻り値
TEXT 型の値が返されます。
例
-- 戻り値: xyxhi. SELECT LPAD('hi', 5, 'xy');
RPAD
説明: 指定された文字列の右側に特定の文字を埋め込み、指定された長さにします。
RPAD(<str> TEXT, <length> INT [, <fill> TEXT])パラメーター
str: 必須。特定の文字を埋め込む文字列。
length: 必須。返される文字列の長さ。
説明特定の文字を埋め込む対象の文字列の長さがこのパラメーターの値を超える場合、この関数は文字列の右側を指定された長さに切り詰めます。
fill: オプション。埋め込みに使用する文字。 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: 必須。 old_str を置き換えるために使用する部分文字列。
戻り値
TEXT 型の値が返されます。
例
CREATE TABLE animal_test ( animal text, color text ); INSERT INTO animal_test VALUES ('dog', 'white'), ('cat', 'white'), ('tiger', 'yellow'); SELECT animal, REPLACE(color, 'white', 'multicolored') FROM animal_test;次の結果が返されます:
animal | replace ------------------- dog | multicolored cat | multicolored tiger | yellow
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 つの漢字は 3 バイトを占め、1 つの数字または文字は 1 バイトを占めます。
LENGTH(<str> TEXT)戻り値
INT 型の値が返されます。
例
-- 戻り値:4。 SELECT LENGTH('jose');説明1 つの英字は 1 バイトを占めます。したがって、英字の
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: オプション。部分文字列の n 番目の出現位置が返されます。このパラメーターを指定しない場合、この関数は部分文字列の最初の出現位置を返します。
戻り値
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 ハッシュを計算します。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 型の値が返されます。文字列が指定されたプレフィックスで始まる場合、この関数は true を示す t を返します。それ以外の場合、この関数は false を示す f を返します。
例
-- 戻り値: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 ('Ava', 'singing, dancing'), ('Bob', 'playing football, running, painting'), ('Jack', 'arranging flowers, writing calligraphy, playing the piano, sleeping'); SELECT name, REGEXP_SPLIT_TO_TABLE(intrests, ',') FROM interests_test;次の結果が返されます:
name | regexp_split_to_table --------------------------- Ava | singing Ava | dancing Bob | playing football Bob | running Bob | painting Jack | arranging flowers Jack | writing calligraphy Jack | playing the piano Jack | sleeping
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 ('Ava', 'singing, dancing'), ('Bob', 'playing football, running, painting'), ('Jack', 'arranging flowers, writing calligraphy, playing the piano, sleeping'); SELECT name, REGEXP_SPLIT_TO_ARRAY(intrests, ',') FROM interests_test;次の結果が返されます:
name | regexp_split_to_array ---------------------------- Ava | {singing, dancing} Bob | {playing football, running, painting} Jack | {arranging flowers, writing calligraphy, playing the piano, sleeping}
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:必須。substr を置き換えるために使用する部分文字列。
戻り値
TEXT 型の値が返されます。
例
-- 戻り値:a2x5。 SELECT TRANSLATE('12345', '143', 'ax');
ROW
説明: 数式が配置されている行の番号を返します。
ROW()使用上の注意: この関数は、Hologres V1.3 以降でのみサポートされています。
説明Hologres インスタンスが以前のバージョンの場合、インスタンスを手動でアップグレードするか、Hologres DingTalk グループに参加してアップグレードを申請してください。詳細については、「Hologres のオンラインサポートを受ける」をご参照ください。
戻り値
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