我有这个红移 SQL 查询。我使用“REGEXP_SUBSTR”函数从评论中提取了一个带小数的数字。我还需要将它从字符串转换为数字/十进制。然后,我需要从总数中减去这个数字。
这是我的查询
SELECT sc.comment,
sm.subtotal,
to_number(REGEXP_SUBSTR(sc.comment, '[0.00-9]+..[0.00-9]+', 1),'9999999D99')
FROM "sales_memo_comments" sc INNER JOIN "sales_memo" sm ON sc.foreign_id = sm.parent_id
我尝试在 Redshift SQL 上使用“to_number”函数,但它给了我以下信息:错误:数字类型的输入语法无效:“”
这是当前输出在从评论栏中提取数字退款金额之前:
comment
"SAR719.00 Refund transaction executed successfully, Refund Request ID:504081288877953603 \n , Authorization Code:095542 "
"AUD52.07 Refund transaction executed successfully, Refund Request ID:6J45695858A90833"
Canceled by : ron.johnd@company.co.us
refund amount is [MYR197.41]
"Please Ignore Order refunded by Refund Request ID:5002758809696048 , Authorization Code:2587759"
OMR37.83($98.23) Refund transaction executed successfully
这是在将上述 SQL 查询与 REGEXP 一起使用后的结果。我仍然得到一些异常。
comment
719
52.07
.co.
197.41
5.0027621
37.83($98.23
两个问题
- 如何编辑 REGEXP 以考虑上面看到的异常情况
- 如何将我的字符串 REGEXP 转换为数值以与另一个数值列进行减法?
任何帮助,将不胜感激。