TRY_CAST函数是一种数据类型转换函数,用于尝试将TEXT类型的数据转换成目标数据类型,当尝试转换的数据不符合目标数据类型约束时,TRY_CAST函数不会抛出异常,而是自动将异常数据转换为NULL值。
使用限制
仅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。
示例
创建
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');
使用
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)