适用于: Databricks SQL
Databricks Runtime 10.4 LTS 及更高版本
如果支持将sourceExpr
转换为targetType
,则返回转换后的值;否则,如果支持从sourceExpr
类型转换为targetType
,则返回NULL
。
DATATYPE_MISMATCH
如果源类型和目标类型不是有效的强制转换组合,则返回错误。 请查看 返回 以了解支持的类型转换组合。
语法
try_cast(sourceExpr AS targetType)
参数
-
sourceExpr
:任何可强制转换的表达式。 -
targetType
:结果的类型。
返回
结果的类型为 targetType
。
此函数是函数的cast
更宽松变体,其中包含详细说明。
try_cast
与 cast
函数的不同之处在于,只要支持从类型 expr
到 type
的行强制转换,就可以容忍以下条件:
- 如果
sourceExpr
值无法容纳在targetType
的域中,则结果为NULL
而不是溢出错误。 - 如果
sourceExpr
值格式不正确或包含无效字符,则结果为NULL
而不是无效数据错误。
上述条件的例外情况如下:
- 使用 属性强制转换为
NOT NULL
字段。 - 强制转换 MAP 键。
示例
> SELECT try_cast('10' AS INT);
10
> SELECT try_cast('a' AS INT);
NULL