類型轉(zhuǎn)換函數(shù)
TRY_CAST函數(shù)是一種數(shù)據(jù)類型轉(zhuǎn)換函數(shù),用于嘗試將TEXT類型的數(shù)據(jù)轉(zhuǎn)換成目標(biāo)數(shù)據(jù)類型,當(dāng)嘗試轉(zhuǎn)換的數(shù)據(jù)不符合目標(biāo)數(shù)據(jù)類型約束時(shí),TRY_CAST函數(shù)不會(huì)拋出異常,而是自動(dòng)將異常數(shù)據(jù)轉(zhuǎn)換為NULL值。
除了TRY_CAST函數(shù)以外,Hologres也支持其他類型轉(zhuǎn)換函數(shù),具體請(qǐng)參見日期和時(shí)間函數(shù)、日期和時(shí)間函數(shù)等。
使用限制
僅Hologres V2.2及以上版本支持TRY_CAST函數(shù)。
TRY_CAST
語(yǔ)法
TRY_CAST( <source_string_expr> AS <target_data_type> )
參數(shù)說(shuō)明
參數(shù)名詞
數(shù)據(jù)類型
說(shuō)明
source_string_expr
TEXT
待轉(zhuǎn)換列。
target_data_type
INTEGER,SMALLINT,BIGINT
REAL,DOUBLE PRECISION
BOOLEAN
DECIMAL
JSONB
DATE
TIMESTAMP
TIMESTAMPTZ
說(shuō)明僅Hologres V3.0及以上版本支持DATE、TIMESTAMP、TIMESTAMPTZ類型。
目標(biāo)數(shù)據(jù)類型。
說(shuō)明如果待轉(zhuǎn)換列數(shù)據(jù)不支持被轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型,則返回NULL。
示例
創(chuàng)建
try_cast_test
目標(biāo)表并寫入測(cè)試數(shù)據(jù)。--創(chuàng)建目標(biāo)表try_cast_test。 CREATE TABLE IF NOT EXISTS try_cast_test ( key int, value text ); --向目標(biāo)表中寫入測(cè)試數(shù)據(jù)。 INSERT INTO try_cast_test VALUES (1, '1'), (2, 'abc');
使用
TRY_CAST
函數(shù)將TEXT類型的數(shù)據(jù)轉(zhuǎn)換為INT類型。--將value列TEXT類型的數(shù)據(jù)轉(zhuǎn)換為INT類型,并放在value_int列展示。 SELECT key, value, TRY_CAST (value AS INT) as value_int FROM try_cast_test;
返回結(jié)果如下。
value
列值“abc”由于無(wú)法轉(zhuǎn)換成INT類型,TRY_CAST
函數(shù)將異常數(shù)據(jù)處理為NULL值。key | value | value_int -----+-------+----------- 1|1 | 1 2|abc |\N (2 rows)