すべてのプロダクト
Search
ドキュメントセンター

Hologres:文字列関数

最終更新日:Feb 28, 2026

本トピックでは、Hologres がサポートする文字列関数について説明し、その使用例を示します。

説明

PostgreSQL 互換の文字列関数の詳細については、「PostgreSQL Functions」をご参照ください。

種類

関数

機能

文字列の連結、分割、パディング

BTRIM

文字列の両端から指定された文字を削除します。

CONCAT

2 つ以上の文字列値を連結し、1 つの文字列として返します。

CONCAT_WS

最初の引数を区切り文字として使用し、それ以外のすべての引数を連結します。

LEFT

文字列の先頭から指定された文字数を抽出します。

LISTAGG

複数行にわたる同じ列の値を集約して 1 つの文字列にします。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。

LPAD

文字列の左側に指定された文字を埋め込み、指定された全長にします。

LTRIM

文字列の左側 (先頭) から指定された文字を削除します。

REGEXP_MATCH

文字列を正規表現と照合し、一致した部分を結果の配列で返します。

RPAD

文字列の右側に指定された文字を埋め込み、指定された全長にします。

RTRIM

文字列の右側 (末尾) から指定された文字を削除します。

TRIM

文字列の先頭、末尾、または両端から指定された文字を削除します。

STRING_AGG

複数行にわたる同じ列の値を集約して 1 つの文字列にします。

SPLIT_PART

指定された区切り文字で文字列を分割し、num 番目のセグメントを返します。

STRING || STRING

2 つの文字列を連結します。

SUBSTR

指定された開始位置から文字列の末尾まで、または指定された長さの部分文字列を抽出します。

SUBSTRING

指定されたルールに基づいて対象の文字列から部分文字列を抽出します。

その他の文字列関数

ASCII

文字列の最初の文字の ASCII コードを返します。

CHAR_LENGTH

文字列の文字長を返します。

CHR

指定されたコード値に対応する文字を返します。

INITCAP

各単語の最初の文字を大文字に、残りを小文字に変換します。

INSTR

対象の文字列の指定された範囲内で部分文字列の位置を検索します。見つかった場合はその位置を返し、見つからない場合は 0 を返します。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。

LENGTH

文字列の文字数を返します。

LOWER

文字列を小文字に変換します。

MD5

文字列の MD5 ハッシュを計算します。結果は 16 進数形式で返されます。

OCTET_LENGTH

文字列のバイト数を返します。

PLVSTR.RVRS

文字列を反転させます。これは Oracle 互換関数です。まず orafce 拡張機能をインストールする必要があります。詳細については、「Oracle 互換関数」をご参照ください。

POSITION

対象の文字列内で部分文字列の位置を検索します。

PARSE_IDENT

SQL 識別子のルールに準拠した文字列を解析します。

QUOTE_IDENT

文字列を引用符で囲み、有効な SQL 識別子にします。

QUOTE_LITERAL

文字列を有効な SQL 文字列定数に変換します。

REPEAT

文字列を指定された回数繰り返します。

REPLACE

ソース文字列内で指定された部分文字列のすべての出現箇所を検索し、別の文字列に置換します。

REGEXP_REPLACE

POSIX 正規表現を使用して、部分文字列を新しい部分文字列に置換します。

REGEXP_SPLIT_TO_ARRAY

正規表現を使用して文字列を分割し、結果を配列として返します。

REGEXP_SPLIT_TO_TABLE

文字列分割関数は、文字列を複数の行に分割し、行から列への変換を可能にします。

ROW

数式が配置されている行番号を返します。この関数は Hologres V1.3 以降でのみサポートされています。

STARTS_WITH

対象の文字列が指定されたプレフィックスで始まるかどうかを確認します。

STRPOS

対象の文字列内で部分文字列の位置を検索します。

TO_HEX

数値をその 16 進数表現に変換します。

TO_NUMBER

文字列を数値型に変換します。

TRANSLATE

文字列内の文字を指定された文字に置換します。

UPPER

文字列を大文字に変換します。

文字列の連結、分割、パディング

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