适用于:
Databricks SQL
Databricks Runtime 10.4 LTS 及更高版本
如果支持将sourceExpr转换为targetType,则返回转换后的值;否则,如果支持从NULL类型转换为sourceExpr,则返回targetType。
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