【SQL】使用SQL求1-100的质数
程序员文章站
2024-03-15 15:03:29
...
SQL求1-100的质数
场景:
今天无意中看到这样一个求1-100的质数SQL,如下:
with t as
(select rownum rn from dual connect by level <= 100)
select *
from t
where rn > 1
minus
select ta.rn * tb.rn
from t ta, t tb
where ta.rn <= tb.rn and ta.rn > 1 and tb.rn > 1;
分析:
1.首先得明白什么是质数,简单的说质数就是:比1大的整数除了1和它本身外,不再有其他因数;
2.分析上面的SQL
with t as
(select rownum rn from dual connect by level <= 100) --使用with获取存放1-100整数的视图t
select *
from t
where rn > 1 --2-100的整数
minus --差集
select ta.rn * tb.rn --乘积,此时的数表示因数大于2个的数
from t ta, t tb
where ta.rn <= tb.rn and ta.rn > 1 and tb.rn > 1;
2-100的数减去因数大于2个的数就剩下只有1和它本身的数即为质数;
但这里最后的内关联实际会发生笛卡尔积!
上一篇: Activity与Fragment之间简单的数据传递
下一篇: Python的print 格式化输出
推荐阅读
-
【SQL】使用SQL求1-100的质数
-
【赵强老师】使用MongoDB的命令行工具:mongoshell 博客分类: MongoDB mongodbnosql数据库sql
-
使用java求1~100的所有质数
-
一些 Oracle Sql 语句的使用 博客分类: DB开发 SQLOracleLinuxjava数据库
-
MyBatis使用动态SQL标签的小陷阱
-
SQL replace的使用 博客分类: 数据库 SQLLotus
-
MyBatis使用动态SQL标签的小陷阱
-
asp.net结合aspnetpager使用SQL2005的存储过程分页
-
asp.net结合aspnetpager使用SQL2005的存储过程分页
-
Vert-x-通过异步的方式使用JDBC连接SQL