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 VALUEUNION ALLSELECT VALUE+ 1 AS VALUEFROM aWHERE VALUE< 5)SELECT * FROM a;
结果如下:
x,y的范围就在这里取
把x+y=5放入WHERE 条件中
WHERE a.VALUE+b.VALUE=5
SQL如下:
WITH a AS (SELECT 1 AS VALUEUNION ALLSELECT VALUE+ 1 AS VALUEFROM aWHERE VALUE< 5),b AS (SELECT * FROM a)SELECTa.VALUE x,b.VALUE yFROM a,bWHERE a.VALUE+b.VALUE=5
结果如下:
总结
这里主要讲解了如何构造连续整数的方法,通过递归函数进行累加一即可;
其次运用了简单的数学逻辑将表进行了自连接,找出符合条件的结果集。