首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SAP HANA与Try_Cast的等效逻辑

SAP HANA与Try_Cast的等效逻辑
EN

Stack Overflow用户
提问于 2019-04-12 22:19:21
回答 1查看 860关注 0票数 1

在SQL Server中,您有一个名为Try_Cast的函数。https://docs.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-2017

我喜欢你可以把这句话放进案例陈述中:

代码语言:javascript
复制
SELECT   
CASE WHEN TRY_CAST('test' AS float) IS NULL   
THEN 'Cast failed'  
ELSE 'Cast succeeded'  
END AS Result;  

我需要在SAP HANA中具有完全相同的逻辑。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-16 16:23:22

到目前为止,据我所知,HANA还没有与之相当的东西。如果您有特定的类型转换(例如,从nvarchar到float),您可以创建自己的标量函数来使用退出处理程序来处理"try cast“,该处理程序检查相关的数据类型转换sql错误代码。

要使nvarchar浮动,此函数可能如下所示:

代码语言:javascript
复制
FUNCTION "try_cast_nvarchar_2_float" ( i_value nvarchar(5000) ) 
RETURNS e_result float
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS 
BEGIN
  DECLARE EXIT HANDLER FOR SQL_ERROR_CODE 339
    e_result = null;
  
  e_result = cast(i_value as float);
END;

此函数可以在普通sql中使用;与示例中的case表达式类似:

代码语言:javascript
复制
SELECT 
  "try_cast_nvarchar_2_float"('10.34') AS casted_value,
  CASE
    WHEN "try_cast_nvarchar_2_float"(:lv_value) IS NULL
    THEN 'Cast failed'
    ELSE 'Cast succeeded'
  END AS cast_result
FROM dummy;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55653733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档