【发布时间】:2021-06-18 14:43:30
【问题描述】:
我正在尝试从整数(正数或负数)或数字到小数点后两位的字符串中返回数字,但是代码似乎忽略了以 0 开头的数字,我希望对如何获得一些帮助修复这个问题,代码如下:
WITH A AS(
SELECT CURRENT_BALANCE, ( CASE WHEN (REGEXP_LIKE(CURRENT_BALANCE,'^-?[0-9]+(\.[0-9]{1,2})?$')) then 1 ELSE 0 end ) AS T FROM BALANCE_TABLE )
SELECT * FROM A
WHERE T = 0
LIMIT 1
-- regexp_like 是问题所在,上面的代码只是返回给我没有被拾取的数字
编辑:未返回的示例:0.00、-0.07、0.04 谢谢
【问题讨论】:
-
请在您认为应该匹配时提供匹配和不匹配的示例。另外,为什么
current_balance会被存储为字符串? -
对不起,我在帖子中添加了示例,老实说,表格最初是如何设置的 - 大概是为了能够添加 N/A 或以其他方式区分我们缺少信息的地方,而不是仅仅一个空
-
您的代码对待规定值的方式与对待整数的方式相同:dbfiddle.uk/…。