好玩的SQL

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=2
1+2=3
1+3=4
2+1=3
2+2=4
2+3=5
3+1=4
3+2=5
3+3=6

9 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);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server是一种关系型数据库管理系统,它提供了强大的数据存储和查询功能。在SQL Server中,可以使用多种方法导出SQL语句,以下是几种常见的方法: 1. 使用SQL Server Management Studio (SSMS):SSMS是SQL Server的官方管理工具,它提供了图形化界面和丰富的功能。要导出SQL语句,可以在SSMS中执行查询语句,并将结果保存为SQL文件。在查询结果窗口中,右键单击结果集,选择“保存结果为”或“脚本结果为”,然后选择保存为SQL文件。 2. 使用bcp命令行工具:bcp是SQL Server提供的命令行工具,用于导入和导出数据。可以使用bcp命令导出整个表或查询结果为SQL文件。例如,使用以下命令导出表数据: ``` bcp <数据库名>.<模式名>.<表名> out <输出文件路径> -S <服务器名> -U <用户名> -P <密码> -c ``` 其中,`<数据库名>`是要导出的数据库名称,`<模式名>`是表所属的模式(可选),`<表名>`是要导出的表名称,`<输出文件路径>`是保存SQL文件的路径,`<服务器名>`是SQL Server的名称,`<用户名>`和`<密码>`是连接数据库所需的凭据。 3. 使用SQL Server Integration Services (SSIS):SSIS是SQL Server的ETL(Extract, Transform, Load)工具,可以用于数据导入和导出。通过创建一个SSIS包,可以定义数据源和目标,并将数据导出为SQL文件。在SSIS中,可以使用“导出数据”任务或“SQL任务”来实现。 4. 使用编程语言和SQL Server驱动程序:如果你熟悉编程,可以使用支持SQL Server的编程语言(如Python、Java、C#等)和相应的SQL Server驱动程序来导出SQL语句。通过连接到数据库,执行查询语句,并将结果保存为SQL文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值