sql - 如何从postgresql中包含单词和数字的列中提取数字
问题描述
我正在尝试在 Postgresql 中编写一个查询,我需要从详细信息列中提取订单号,但我只想在列中的条目包含“用作订单 x 的付款”时提取订单号,其中 x 是我需要提取的号码。我不知道该怎么做,因为订单号包含不同数量的数字。这是我到目前为止所拥有的-
示例字符串 - “用作订单 1034267 的付款” 所需输出 - 1034267
示例字符串 - “用作订单 55263 的付款” 所需输出 - 55263
SELECT details
FROM transactions
WHERE details LIKE 'Used as payment on order%'
但这会获取整个列条目,而不仅仅是数字。如何仅从条目中获取数字?
解决方案
这可以很容易地使用regexp_replace()
和删除输入字符串中不是数字的所有内容:
SELECT regexp_replace(details, '[^0-9]+', '', 'g')
FROM transactions
WHERE details LIKE 'Used as payment on order%'
推荐阅读
- php - WordPress 页面打开但有 403 禁止状态
- tensorflow - Tensorflow 异步/并发 for 循环
- r - rvest::html_nodes 返回一个部分列表(只有几个项目)
- google-apps-script - Google Sheet:如何以水平方式返回数组数据?
- python-3.x - 如何用多列中的 NaN 值替换多个无效值
- javascript - jquery函数.html .text在.each中调用ajax时不起作用
- javascript - 将 string.replace() 与样式化组件一起使用是否安全/有效?
- excel - IF 函数不知道小于“0”的值
- python - 数幂的整数除法可以优化吗?
- html - pointerdown 不适用于单选按钮元素?