全部產品
Search
文件中心

Hologres:類型轉換函式

更新時間:Sep 13, 2024

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

說明

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

使用限制

使用TRY_CAST函數要求Hologres執行個體版本必須為V2.2,若您的執行個體為V2.1或以下版本,可聯絡Hologres支援人員升級執行個體。

使用文法

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)