|
-- (1,3) (-1,-2)
with tmp as
--斜率
(select (-2-3)/(-1-1) as k from dual ),
tmp1
as
-- 斜截式常量b; y=kx+b
(select 3- k *1 as b from tmp),
tmp2
as
-- 斜截式定义域 y=kx+b ;
---5<=x,y<=5
-- x ∈ [ LEAST(MAX_X, -5) , GREATEST(MAX_X, -5) ]
(select (5- t.b)/t1.k as max_x from tmp1 t, tmp t1)
-- 取定义域内的整数,过滤Y的非整数
SELECT *
FROM (SELECT X,
(SELECT K
FROM TMP) * X + (SELECT B
FROM TMP1) AS Y
FROM (SELECT LEVEL - 6 AS X
FROM DUAL
CONNECT BY LEVEL <=
(SELECT CEIL(GREATEST(MAX_X, -5) - LEAST(MAX_X, -5))
FROM TMP2)))
WHERE CEIL(Y) = Y |
|