try_cast 函数

适用于:勾选“是” Databricks SQL 勾选“是” Databricks Runtime 10.4 LTS 及更高版本

如果支持将sourceExpr转换为targetType,则返回转换后的值;否则,如果支持从sourceExpr类型转换为targetType,则返回NULLDATATYPE_MISMATCH 如果源类型和目标类型不是有效的强制转换组合,则返回错误。 请查看 返回 以了解支持的类型转换组合。

语法

try_cast(sourceExpr AS targetType)

参数

  • sourceExpr:任何可强制转换的表达式。
  • targetType:结果的类型。

返回

结果的类型为 targetType

此函数是函数的cast宽松变体,其中包含详细说明。

try_castcast 函数的不同之处在于,只要支持从类型 exprtype 的行强制转换,就可以容忍以下条件:

  • 如果 sourceExpr 值无法容纳在 targetType 的域中,则结果为 NULL 而不是溢出错误。
  • 如果 sourceExpr 值格式不正确或包含无效字符,则结果为 NULL 而不是无效数据错误。

上述条件的例外情况如下:

  • 使用 属性强制转换为 NOT NULL 字段。
  • 强制转换 MAP 键。

示例

> SELECT try_cast('10' AS INT);
 10

> SELECT try_cast('a' AS INT);
 NULL