经典SQL题4

一、从pubs数据库中的Titles表中查询Title字段,把价格(price)显示为,如果价格为空显示为“不存在该价格”,如果价格小于10显示为“低价”,价格在10-20之间的显示为平均价格,大于20的价格显示为高价。

二、从pubs数据库中的titles表中检索,写如下sql语句 1、按类型(type)分组,显示各种类型的价格之和,各类型价格的平均值,各类型价格的最高值。 2、按日期排序,查询价格在前五名的价格和title,并且显示后的 ORDER BY 列中的值相同的值。

三、使用日期函数找出当月的天数四、现在有这样一个数据表student

name  object  score
a           EN         89
a           CH         78
a            HO        99
b            EN        34
b            CH        88
b            HO        66
要求生成下面样式
name  EN  CH  HO
a          89   78   99
b          34   88   66

五、员工表employee字段如下: e_id e_name e_wage dept_id 1、在一次查询中列出各部门员工工资平均值,各部门最高工资,仅显示平均工资大于2000的部门。 2、按工资降序排序,查询工资在1500-4000之间的所有员工 3、查询研发部和销售部工资在3000元以上的员工


参考答案:

1、select 价格=case
when price<10 then '低价'
when price>20 then '高价'
when price is null then '不存在该价格'
when price between 10 and 20 then '平均价格'
--else '平均价格'
end,

from titles

2、select max(price) as 'max',avg(price) 'avg',sum(price) as 'sum', type from titles
group by type

3、select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast(cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' as datetime))))
4、
CREATE TABLE t(name VARCHAR(10), object VARCHAR(10), score INT)
INSERT t SELECT 'a', 'EN' , 89
UNION ALL SELECT 'a', 'CH' , 78
UNION ALL SELECT 'a' , 'HO' , 99
UNION ALL SELECT 'b' , 'EN' , 34
UNION ALL SELECT 'b' , 'CH' , 88
UNION ALL SELECT 'b' , 'HO' , 66

SELECT name,
EN=MAX(CASE WHEN object='EN' THEN score ELSE 0 END),
CH=MAX(CASE WHEN object='CH' THEN score ELSE 0 END),
HO=MAX(CASE WHEN object='HO' THEN score ELSE 0 END)
FROM t
GROUP BY name

5:

select avg(e_wage) as 平均工资,max(e_wage) as 最高工资
from employee
group by dept_id
having avg(e_wage) > 2000
go

select e_name from employee where e_wage < 4000 and e_wage > 1500 order by e_wage desc


select e_name from employee where e_wage > 3000 and object in('研发部','销售部')


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值