如何用一条sql解多元多次方程和构造序列
比如一道比较简单的数学题
x+y=6
0<x<6,0<y<6
求所有整数解,以x y显示所有解
解答过程:
1.首先构造序列,以0<x<6,0<y<6方式构造序列
SQL> select rownum val from dual connect by rownum>=0 and rownum<=6
2 /
VAL
----------
1
2
3
4
5
6
x,y的范围就在这里取
2.把x+y=6放入where条件中
where a.val+b.val=6
sql如下:
with a as (select rownum val from dual connect by rownum>=0 and rownum<=6)
,b as (select * from a)
select a.val x,b.val y from a,b
where a.val+b.val=6
SQL> /
X Y
---------- ----------
1 5
2 4
3 3
4 2
5 1
多元多次方程,可以使用power函数。
其实oracle构造了很多数学函数,有兴趣的同学可以翻看oracle的官方文档,比如sin,cos这些函数都有
上述sql中使用了connect by来构造序列,其实还有许多方法也可以构造序列,比如xmltable,dba_objects等等
xmltable:
SQL> select column_value from xmltable('1 to 5');
COLUMN_VALUE
--------------------------------------------------------------------------------
1
2
3
4
5
dba_objects:
select rownum from dba_objects where rownum<=5;
SQL> select rownum from dba_objects where rownum<=5;
ROWNUM
----------
1
2
3
4
5
这些在构造较小序列时可以使用的方法,他们各有利弊,在构造较大序列时更为明显。怀晓明老师有一篇对oracle序列有非常精彩讲解的文章:
https://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=2650275015&idx=1&sn=5a62227514b7e37f3ac9c6764cbde263&chksm=be4864d1893fedc7d70e9f54a2b7f4aa05a9a0fcda33068db2bf017e21bdae58c85ac0f42c7f&mpshare=1&scene=1&srcid=0705UW3Cz7t4xMVeKbH340We&key=d53c64c4a9a4bf1d1e3d616f32473a8d529502327297490d6b69b1bb5f1af0249fefb54bda4d2225b99dbb95dcb12fc018d1a1f5b435c5993f176bb0a9f647220fd3fd43d2c0c0bf73b55bb1a3c932d4&ascene=0&uin=MzQ5MDIyMTYw&devicetype=iMac+MacBookPro14%2C1+OSX+OSX+10.12.5+build(16F2073)&version=12020810&nettype=WIFI&lang=zh_CN&fontScale=100&pass_ticket=i4so9Zqmu6wr5qyCm2L4cVTDYxpuPxcfQzB%2B4L%2BYPAM%2B7IR1KuuYq6h43Uhh25po
深受启发
如何用一条sql解多元多次方程和构造序列相关推荐
- MySQL如何用一条SQL将一张表里的数据插入到另一张表
2019独角兽企业重金招聘Python工程师标准>>> 今天修改商品表结构,新建表,数据重新导入,刚开始是复制拷贝,之后数据清除后,想想sql语句能不能实现数据导入从一张表到另一张表 ...
- mysql 如何用一条SQL将一张表里的数据插入到另一张表 3个例子
1. 表结构完全一样 insert into 表1select * from 表2 2. 表结构不一样(这种情况下得指定列名) insert into 表1 (列名1,列名2,列名3)select ...
- c语言求方程组的自然数解,多元一次线性方程自然数解的算法解决办法
C/C++ code#include using namespace std; double* inverse_matrix(int determinant_scale, double *deter) ...
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
如何用一条sql语句实现批量更新?mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现. 代码如下: UPDATE mytable SET myfield = CASE id WHE ...
- sql server修改字段编码格式_原理:一条 sql 的执行过程详解
思维导航: 写操作执行过程 组件介绍 1.undo log 与 MVCC 2.redo log 与 Buffer Pool 3.bin log(Server 层) 1.连接器 2.缓存(Cache) ...
- oracle看一条sql的trace,SQL_TRACE和10046事件详解
sql_trace和10046事件都是我们在优化sql上面应用的非常多的工具,我们可以使用这两个工具知道当前正在执行的sql究竟在做什么 一,SQL_TRACE: SQL_TRACE命令会将执行的整个 ...
- 【MySQL原理解析】01. 一条SQL查询语句是如何执行的
这是[MySQL原理解析]的第一篇文章,MySQL我看了很多的书与教程,对其原理有一定的理解,一直想写一系列的文章来把MySQL的原理给讲清楚,一直没有时间写,今天算是个开头吧.万事开头难,咱们先破了 ...
- 表格存储 SQL 查询多元索引
简介: 多元索引是表格存储产品中一个重要的功能,多元索引使用倒排索引技术为表格存储提供了非主键列上的快速检索功能,另外也提供了统计聚合功能.表格存储近期开放了SQL查询功能,SQL引擎默认从原始表格中 ...
- 腾讯面试:一条SQL语句执行得很慢的原因有哪些?
戳蓝字"CSDN云计算"关注我们哦! 技术头条:干货.简洁.多维全面.更多云计算精华知识尽在眼前,get要点.solve难题,统统不在话下! 作者:帅地 转自:苦逼的码农 说实话, ...
最新文章
- zookeeper安装和使用 windows环境(转)
- php admin允许空密码登陆
- malloc与calloc的区别
- HBase出现java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration问题
- 静态路由(实验讲解+配置)
- 爱奇艺、腾讯视频等接连涨价 地主家也没有余粮了?
- 【Flink】Flink 实时超时统计-A发生B不发生事件统计-不发生事件
- [VC]基于对话框程序,自定义工具栏(支持真彩色图标,可添加文字)
- 纯css3鼠标经过图片显示描述特效
- 如何从产品和技术角度上做一个好产品----软件公司如何开源节流(二)
- IDM2018年最新版破解方法
- 修改IE地址栏Tomcat小猫咪图标
- python利用mysql数据库实现一个中英文翻译程序兼单词试卷生成并改阅功能,并可以爬取有道官网进行在线翻译。
- linux 设置u盘为只读模式,U盘如何设置为只读模式
- java calendar 增加年_java 使用Date类、Calendar类,实现增加日期
- 奋进新时代 和数BaaS开启下一个波澜壮阔科技新世界
- Log4j2源码解读——删除过期文件
- Unity3d NGUI的使用(二)(UILabel中文字体及可点击的字体)
- 谷歌地图kml能透明吗_谷歌卫星地图-[入门]关于KML的一些说明 - Google Earth教程
- Failing over to RSL framework_4.6.0.23201.swz