邪流苑 2022-04-07 14:02 采纳率: 100%
浏览 91
已结题

SQL数据库如何提取指定的金额数字

需要在以下字段内容中提取“调账”后面的金额,应该如何提取?由于字段内容是人工填写的,所以内容不固定,但都会在“调账”后面,而个别会写成“调账”、“调帐”、“调账:”,另外该字段内容还会存在其他数字,请各位帮忙看下要如何才能准备提取到金额。

字段名:录入原因
内容:投诉退赔|BJ2022022818090/2022年2月/赠费/429元/账后调账286.80元/赠款142.2元
需要提取数字为:286.80

字段名:录入原因
内容:投诉退赔|BJ2022030111371,减免21年8月11-12月22年1月扣费扣费,共计219.78元,调帐187.69元
需要提取数字为:187.69

字段名:录入原因
内容:投诉退赔|BJ202203010955+不认可,减免202202月30元,本次调账:0.01 元 剩余;29.99元赠款录入
需要提取数字为:0.01

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2022-04-07 14:20
    关注

    什么版本的sqlserver?2005可用正则表单时提取内容,具体参考下面的文章


    安装好扩展后用下面的下面的正则即可

    img

    select dbo.[Regex.Match]('(?<=(调账|调帐)[^\d\.]*?)\d+(\.\d+)?','内容:投诉退赔|BJ2022022818090/20222月/赠费/429元/账后调账286.80元/赠款142.2元')
    select dbo.[Regex.Match]('(?<=(调账|调帐)[^\d\.]*?)\d+(\.\d+)?','投诉退赔|BJ2022030111371,减免21811-12221月扣费扣费,共计219.78元,调帐187.69元')
    select dbo.[Regex.Match]('(?<=(调账|调帐)[^\d\.]*?)\d+(\.\d+)?','投诉退赔|BJ202203010955+不认可,减免20220230元,本次调账:0.01 元 剩余;29.99元赠款录入')
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月7日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?