SQL如何求解多元一次方程和构造连续整数
作者:互联网
SQL专栏
SQL数据库基础知识汇总
SQL数据库高级知识汇总
问题描述
一道比较简单的数学题
x+y=5
0<x<5,0<y<5
求所有整数解,以x,y显示所有解
解答过程
首先构造连续整数,以0<x<5,0<y<5方式构造0到5的连续整数
WITH a AS (
SELECT 1 AS VALUE
UNION ALL
SELECT VALUE+ 1 AS VALUE
FROM a
WHERE VALUE< 5)
SELECT * FROM a;
结果如下:
x,y的范围就在这里取
把x+y=5放入WHERE 条件中
WHERE a.VALUE+b.VALUE=5
SQL如下:
WITH a AS (
SELECT 1 AS VALUE
UNION ALL
SELECT VALUE+ 1 AS VALUE
FROM a
WHERE VALUE< 5)
,b AS (SELECT * FROM a)
SELECT
a.VALUE x,
b.VALUE y
FROM a,b
WHERE a.VALUE+b.VALUE=5
结果如下:
总结
这里主要讲解了如何构造连续整数的方法,通过递归函数进行累加一即可;
其次运用了简单的数学逻辑将表进行了自连接,找出符合条件的结果集。
标签:一次方程,求解,UNION,VALUE,整数,SQL,WHERE,SELECT 来源: https://blog.51cto.com/15057820/2653357