类型转换函数

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)