全部產品
Search
文件中心

Hologres:類型轉換函式

更新時間:Nov 12, 2024

TRY_CAST函數是一種資料類型轉換函式,用於嘗試將TEXT類型的資料轉換成目標資料類型,當嘗試轉換的資料不符合目標資料類型約束時,TRY_CAST函數不會拋出異常,而是自動將異常資料轉換為NULL值。

說明

除了TRY_CAST函數以外,Hologres也支援其他類型轉換函式,具體請參見日期和時間函數日期和時間函數等。

使用限制

僅Hologres V2.2及以上版本支援TRY_CAST函數。

TRY_CAST

  • 文法

    TRY_CAST( <source_string_expr> AS <target_data_type> )
  • 參數說明

    參數名詞

    資料類型

    說明

    source_string_expr

    TEXT

    待轉換列。

    target_data_type

    • INTEGER,SMALLINT,BIGINT

    • REAL,DOUBLE PRECISION

    • BOOLEAN

    • DECIMAL

    • JSONB

    • DATE

    • TIMESTAMP

    • TIMESTAMPTZ

    說明

    僅Hologres V3.0及以上版本支援DATE、TIMESTAMP、TIMESTAMPTZ類型。

    目標資料類型。

    說明

    如果待轉換列資料不支援被轉換為目標資料類型,則返回NULL。

  • 樣本

    1. 建立try_cast_test目標表並寫入測試資料。

      --建立目標表try_cast_test。
      CREATE TABLE IF NOT EXISTS  try_cast_test (
       key int,
       value text
      );
      
      --向目標表中寫入測試資料。
      INSERT INTO try_cast_test VALUES (1, '1'), (2, 'abc');
    2. 使用TRY_CAST函數將TEXT類型的資料轉換為INT類型。

      --將value列TEXT類型的資料轉換為INT類型,並放在value_int列展示。
      SELECT key, value, TRY_CAST (value AS INT) as value_int FROM  try_cast_test;

      返回結果如下。value列值“abc”由於無法轉換成INT類型,TRY_CAST函數將異常資料處理為NULL值

       key | value | value_int 
      -----+-------+-----------
          1|1      |         1
          2|abc    |\N 
      (2 rows)