try_cast 函数

适用于:check marked yes Databricks SQL check marked yes Databricks Runtime 10.0 及更高版本

如果可能,则返回强制转换为数据类型 targetTypesourceExpr 的值;如果不可能,则返回 NULL。

语法

try_cast(sourceExpr AS targetType)

参数

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

返回

结果的类型为 targetType

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

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

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

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

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

示例

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

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