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;

结果如下:

SQL如何求解多元一次方程和构造连续整数

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

结果如下:

SQL如何求解多元一次方程和构造连续整数

总结

这里主要讲解了如何构造连续整数的方法,通过递归函数进行累加一即可;

其次运用了简单的数学逻辑将表进行了自连接,找出符合条件的结果集。

猜你喜欢

转载自blog.51cto.com/15057820/2653357