gpt4 book ai didi

db2 - 测试数值?

转载 作者:行者123 更新时间:2023-12-01 07:21:00 25 4
gpt4 key购买 nike

我们在临时表中加载的供应商数据相当脏。特别是一列捕获数字数据,但 40% 的时间包含垃圾字符或随机字符串。

我必须创建一个报告来过滤掉该列中的值范围。所以,我尝试像这样使用替换/翻译的组合

select replace(translate(upper(str),' ','all possible char'),' ','')
from table

但是每当遇到我没有编码的字符时它就会失败。因此,报告永远无法自动化。

Javascript 有 isNaN() 函数来确定一个值是否是非法数字(如果是,则为假,否则为假)。

我怎样才能用 DB2 做同样的事情??你有什么主意吗?

提前致谢。

最佳答案

一种相当可靠(但有点hackish)的方法是将字符串与其大写和小写的自我进行比较(数字没有不同的大小写)。只要您引入字符的数据仅包含拉丁字符,您应该没问题:

SELECT input, CASE
WHEN UPPER(input) = LOWER(input) THEN TO_NUMBER(input)
ELSE 0
END AS output
FROM source

另一种选择是使用 TRANSLATE 函数:
SELECT input,
CASE
WHEN TRANSLATE(CAST(input as CHAR(10)), '~~~~~~~~~~~~~', '0123456789-. ') = '~~~~~~~~~~' THEN CAST(input AS DECIMAL(12, 2))
ELSE 0
END AS num
FROM x

关于db2 - 测试数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8565275/

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