博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
好玩的SQL
阅读量:6701 次
发布时间:2019-06-25

本文共 2071 字,大约阅读时间需要 6 分钟。

1. 做一个3*3的加法表

SQL> select a||'+'||b||'='||(a+b) from (select rownum a from all_objects where rownum<4), (select rownum b from all_objects where rownum<4);A||'+'||B||'='||(A+B)------------------------------------------------------------------------------------------------------------------------1+1=21+2=31+3=42+1=32+2=42+3=53+1=43+2=53+3=69 rows selected.

2. 做一个5*5的乘法表

with multiplier as (select rownum n from dual connect by rownum<6)select a.n||'*'||b.n||'='||(a.n*b.n) from multiplier a, multiplier b

3. 不用connect by,只用dual表,构造出1到128

with a as (select 1 from dual union all select 1 from dual)select rownum from a,a,a,a,a,a,a

4. 池塘边上有牛和鹅若干,小华总共看到15个头42条腿,请问牛和鹅各有多少?

with a as (select 1 from dual union all select 1 from dual),b as (select rownum n from a,a,a,a)select x.n num_of_bull, y.n num_of_goose from b x, b y where x.n*4+y.n*2=42 and x.n+y.n=15

5. 百钱买鸡兔:老母鸡3块1只,小母鸡4块5只,大白兔2块1只,小白兔3块4只,要求买回来的动物总共100只,并且脚不少于240条不多于320条。花100块钱来买这些动物,要求每种动物都至少要购买一只且钱正好花完,输出所有的可能情况。

with t as (select 1 from dual union all select 1 from dual),t1 as (select rownum n from t,t,t,t,t)select a.n lmj,5*b.n xmj,c.n dbt,4*d.n xbt from t1 a,t1 b,t1 c,t1 d where 3*a.n+b.n*4+c.n*2+d.n*3=100 and a.n+5*b.n+c.n+4*d.n=100 and (2*a.n+10*b.n+4*c.n+16*d.n between 240 and 320) and a.n<>0 and b.n<>0 and c.n<>0 and d.n<>0;

6. 每个雇员的薪水(SAL)都对应到一个薪水级别(SALGRADE表中的GRADE字段),哪个薪水级别上的雇员数量最多?输出该薪水级别信息。本题需要用三种不同的写法作答。

第一种写法:

select * from salgrade where grade=(select grade from (select s.grade,count(*) from emp e,salgrade s where e.sal between s.losal and s.hisal group by s.grade order by 2 desc) where rownum=1);

第二种写法:

with t as (select s.grade,count(*) num from emp e,salgrade s where e.sal between s.losal and s.hisal group by s.grade),t1 as (select max(num) maxnum from t)select s.* from salgrade s,t,t1 where s.grade=t.grade and t.num=t1.maxnum;

第三种写法:

select * from salgrade where exists (select 1 from (select grade from (select s.grade,count(*) from emp e,salgrade s where e.sal between s.losal and s.hisal group by s.grade order by 2 desc) where rownum=1) s where s.grade=salgrade.grade);

 

转载地址:http://ssgoo.baihongyu.com/

你可能感兴趣的文章
REMarkerClusterer
查看>>
关于浏览器模式和文本模式的困惑
查看>>
Android 获得ImageView中Image的绘制大小
查看>>
mycncart操作使用教程 - 商品分类
查看>>
32为Linux安卓AVD启动报错
查看>>
十分钟让你明白Objective-C的语法(和Java、C++的对比)
查看>>
AppDelegate.h
查看>>
移动开发(C#、VB.NET)Smobiler开发平台——GifView控件的使用方式
查看>>
VisualVM远程连接Linux服务器通过jstatd方式监控JVM内存状态
查看>>
MySQL innodb_table_stats表不存在的解决方法
查看>>
Zend Studio使用教程之升级Zend Studio(1/3)
查看>>
Kendo UI开发教程:Kendo UI模板概述
查看>>
干货分享!DevExpressv16.2最新版演示示例等你来收!(上)
查看>>
枚举enum、NS_ENUM 、NS_OPTIONS
查看>>
vim命令练习题。
查看>>
node.js Websocket消息推送---GoEasy
查看>>
6000个边缘Kubernetes节点驱动城市80万次智能停车,如何成为可能?
查看>>
互联网
查看>>
Spring Boot 整合Mybatis (一)
查看>>
mysql用户的权限分配
查看>>