一、从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('研发部','销售部')