gpt4 book ai didi

sql - HANA Sqlscript 中 T-SQL ISNUMERIC 函数的等价物是什么?

转载 作者:行者123 更新时间:2023-12-04 02:04:06 25 4
gpt4 key购买 nike

我有一个要求,需要将所有 SQL Server 存储过程转换为 HANA 存储过程。我在 T-SQL 中遇到了一个函数 ISNUMERIC,但我在 HANA 中没有得到它的等价物。

在网上搜索了一下,发现HANA并没有内置ISNUMERIC等价函数。然后我尝试编写自己的函数来实现这一点,但我遇到了错误处理和正则表达式限制。

我的 HANA 版本是 70。

最佳答案

SAP HANA 不附带 ISNUMERIC() 函数。然而,这个问题已经在 SCN 上被多次询问和回答:例如。 http://scn.sap.com/thread/3449615

或者我过去的做法: http://scn.sap.com/thread/3638673

drop function isnumeric;
create function isNumeric( IN checkString NVARCHAR(64))
returns isNumeric integer
language SQLSCRIPT as
begin
declare tmp_string nvarchar(64) := :checkString;
declare empty_string nvarchar(1) :='';

/* replace all numbers with the empty string */
tmp_string := replace (:tmp_string, '1', :empty_string);
tmp_string := replace (:tmp_string, '2', :empty_string);
tmp_string := replace (:tmp_string, '3', :empty_string);
tmp_string := replace (:tmp_string, '4', :empty_string);
tmp_string := replace (:tmp_string, '5', :empty_string);
tmp_string := replace (:tmp_string, '6', :empty_string);
tmp_string := replace (:tmp_string, '7', :empty_string);
tmp_string := replace (:tmp_string, '8', :empty_string);
tmp_string := replace (:tmp_string, '9', :empty_string);
tmp_string := replace (:tmp_string, '0', :empty_string);

/*if the remaining string is not empty, it must contain non-number characters */
if length(:tmp_string)>0 then
isNumeric := 0;
else
isNumeric := 1;
end if;

end;

测试显示: 数据为(从虚拟中选择'1blablupp'作为VAL union all 从 dummy 中选择 '1234' 作为 VAL union all select 'bla123' as val from dummy)

select val, isNumeric(val)  from data 

VAL ISNUMERIC(VAL)
1blablupp 0
1234 1
bla123 0

关于sql - HANA Sqlscript 中 T-SQL ISNUMERIC 函数的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27703567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com