感谢各位版主和坛友的鼓励,格式了一下代码

算法就是

将       '12+556-543*152/2423+23*2*435+34-234'

变成2部分  '12+556-                       0+              0+34-234'

和  -543*152/2423 ;23*2*435

分别计算求和

select a.id,

max(text) text,

sum(regexp_substr(add_text, '[0-9]+', 1, n) *

decode(regexp_substr('+' || add_text, '[^0-9]', 1, n),

'+',

1,

-1)) +                                                                            --加法的数字求和,乘法和除法分开计算 ,取每个子串前的运算符号,如果为 ‘-’就 乘以-1

sum((select decode(substr(regexp_substr('+' || text,

'[+|-]([0-9]+[*|/]+)+[0-9]+',

1,

n),

1,

1),

'+',

1,

-1) *                                                                   -- 如 25*515/544  子串前的运算符号,如果为 ‘-’就 乘以-1

power(10,                                                                  -- 从itpub上学到的 利用lg将 连乘 改为加法

Sum(Log(10,

decode(regexp_substr('*' ||

regexp_substr(text,

'([0-9]+[*|/]+)+[0-9]+',

1,

n),

'[^0-9]',

1,

rownum),

'*',

regexp_substr(regexp_substr(text,

'([0-9]+[*|/]+)+[0-9]+',

1,

n),

'[0-9]+',

1,

rownum),

1 / regexp_substr(regexp_substr(text,

'([0-9]+[*|/]+)+[0-9]+',

1,

n),

'[0-9]+',

1,

rownum)))))

from dual

connect by rownum <= len)) wanted

from (select a.id,

a.text,

length(regexp_replace(text, '[0-9]+')) + 1 len,                         --算式中的数字个数

regexp_replace(text, '([0-9]+[*|/]+)+[0-9]+', 0) add_text        --将算式中 乘的子式 代替成0, 后面分开计算

from mar_test a) a,

(select rownum n from dual connect by rownum < 100) b                 --默认算式最多数字100个

where a.len >= b.n

group by id

sql的加减乘除运算_实现四则运算的一条sql语句相关推荐

  1. sql的加减乘除运算_小白学sql(一)

    最近在b站学习sql,在这里做笔记.感兴趣的同学可以一起学习呀~ 1. 基本介绍 sql_store是一个数据库,而customers是数据库中的一个表格. 1.1 如何选择一个数据库 最简单的操作就 ...

  2. oracle sql语句加减,实现四则运算的一条sql语句

    实现四则运算的一条sql语句 1.建立一个测试表 create table mar_test( id number, text varchar2(200)) insert into mar_Test ...

  3. sql的加减乘除运算_SQL简单查询语、运算符学习和练习

    本次主要学习了SQL语言的书写和运算,多为实操,一定要多写多思考,综合运用起来. 基本查询语句(select *全部 as替换 distinct删除重复) 指定查询条件(where 从哪里查询) 注释 ...

  4. sql的加减乘除运算_sql查询,sql加减乘除运算,sql函数

    好记性不如写成博客 公司要做个台帐报表,用到sql加减乘除运算,sql判断及各种函数等,如下 create table temp( SELECT (@rowNO := @rowNo+1) AS '序号 ...

  5. 加减法叫做什么运算_小学四则运算基础知识,赶快给孩子存下吧!

    计算能力是小学数学学习的基础.期末考试快来了,今天小猿老师为大家分享小学阶段关于四则运算的基础知识. 趁着期末考试前,帮孩子们查漏补缺,提高计算能力,争取期末表现得更好哦~家长们收藏吧. 运算定律 加 ...

  6. sql server jar包_老王,怎么完整SQL的显示日志,而不是???...

    点击蓝色"Java面试那些事儿"关注我哟 加个"星标",优质文章,第一时间送达 来源:http://1t.click/ag6q在常规项目的开发中可能最容易出问题 ...

  7. mysql数据库优化语句_【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

    慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子 ...

  8. sql活动监视器 死锁_使用system_health扩展事件监视SQL Server死锁

    sql活动监视器 死锁 Performance monitoring is a must to do the task for a DBA. You should ensure that the da ...

  9. 加减法叫做什么运算_加减法四则运算的计算方法是什么

    1.后位满十多写12.后位是9隔位看3.后位小9写原数4.后位上小下大少写1素质教育与考试心理"专题节目的写作业的速写方法,是快心算写方法快心算是目前唯一不借助任何实物进行简便运算的方法,既 ...

最新文章

  1. SpringBoot + Redis 解决海量重复提交问题
  2. Column 'Column Name' does not belong to table Table
  3. cudnn问题 cudnnCreate 延时长 见效慢 要卡十几分钟才能过 如何解决?(229)
  4. android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转
  5. android -------- Data Binding的使用 ( 四 )ListView
  6. 军事卫星行业调研报告 - 市场现状分析与发展前景预测
  7. css使两个盒子并列_前端学习CSS
  8. postgresql保存图片_第一章 PostgreSQL中的数据库集群、数据库和表
  9. 顶岗实习周记java方向_java 实习周记
  10. 电子版证件照怎么制作并改大小
  11. picasa图片编辑器_如何将iPhone图片和电影导入Picasa
  12. 20130419阿里电话面试记录
  13. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校计算机科学本科专业-(20页)-原创力文档...
  14. bzoj 2827 千山鸟飞绝 平衡树
  15. micropython 固件编译关于 spi psram opi qspi 的设置
  16. TCP/IP知识总结面试题之Socket服务
  17. 共享服务器模式(shared server)和专用服务器模式(dedicated server)
  18. L4W4作业1 人脸识别 - the Happy House
  19. 计算机的专业的个人陈述,计算机专业留学个人陈述范文
  20. JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招

热门文章

  1. WebKit.NET-0.5简单应用
  2. C# webrequest 抓取数据时,多个域Cookie的问题
  3. jquery 删除字符串最后一个字符的方法
  4. 详解ASP.NET页面的aspx扩展
  5. PHP下kafka的实践(已经测试)
  6. Linux的僵尸进程产生原因及解决方法
  7. jQuery按键事件keyup
  8. wxpython动态实时绘图_wxPython: 简单的绘图例子
  9. java传送字符到前端_mina实现服务器与客户端传送对象或字符串
  10. 湖南大学计算机考研考什么,2017年湖南大学计算机系统考研大纲