在SQL Server中,您有一个名为Try_Cast的函数。https://docs.microsoft.com/en-us/sql/t-sql/functions/try-cast-transact-sql?view=sql-server-2017
我喜欢你可以把这句话放进案例陈述中:
SELECT
CASE WHEN TRY_CAST('test' AS float) IS NULL
THEN 'Cast failed'
ELSE 'Cast succeeded'
END AS Result; 我需要在SAP HANA中具有完全相同的逻辑。
有什么想法吗?
发布于 2019-04-16 16:23:22
到目前为止,据我所知,HANA还没有与之相当的东西。如果您有特定的类型转换(例如,从nvarchar到float),您可以创建自己的标量函数来使用退出处理程序来处理"try cast“,该处理程序检查相关的数据类型转换sql错误代码。
要使nvarchar浮动,此函数可能如下所示:
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表达式类似:
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;https://stackoverflow.com/questions/55653733
复制相似问题