sql server数据库加强练习题3

本文介绍了使用SQL进行日期计算、员工工资调整、年龄与工作年限计算、通话时长统计等基本操作,并深入探讨了Case函数在不同场景下的应用,包括成绩评级、比较运算和销售等级分类。

1 计算 100 天后病毒发作的日期。

print convert(varchar(50),dateadd(day,100,getdate()),111)

2 凡是入职一年以上的员工,工资增加 500 ¥

Update Employees set EmpSalary=EmpSalary+500 wheredateadd(year,1,empentime)<getdate()

3 计算 1975 年 10 月 5 日 到现在现在相差多少年 / 月 / 日 / 小时 ?

Print datediff ( year , '1975-10-5' , getdate ())

Print datediff ( month , '1975-10-5' , getdate ())

Print datediff ( day , '1975-10-5' , getdate ())

Print datediff ( hour , '1975-10-5' , getdate ())

4 统计 2008 年入职的员工

Select * from Employees

Where year(startdatetime)=’2008’

5 输出所有数据中通话时间最长的 5 条记录。

Select top 5 * , 通话时长 ( 秒 )=datediff(second,startdatetime,enddatetime) from callreades

Order by 通话时长 desc

6 将结果集加入一列“通话时长(秒)”

Select top 5 * , 通话时长 ( 秒 )=datediff(second,startdatetime,enddatetime) from callreades

Order by 通话时长 desc

三、 Case 函数用法

1.1

use School

SELECT * FROM Score

SELECT * FROM Student

--90 分以上优秀

--80 分以上良好

--70 分以上中等

--60 分以上及格

--60 分以下不及格

Selectscoreid,studentid,english, 评级 =

Case

Whenenglish>=90 then ’ 优秀 ’

When english>=80 then ’ 良好 ’

Whenenglish>=70 then ’ 中等 ’

When english >=60 then ‘ 及格 ’

Else‘ 不及格 ’

Endform score

2 、要求,查询结果集中有 A B C 三列 , 用 SQL 语句实现:当 A 列大于 B 列时,在 C 中显示 A 列的值否则显示 B 列中的值。

Select A,B,C=

case when A>=B then A

Else (b)

End from TestCase

3、 在订单表中,统计每个销售员的总销售金额,列出销售员名、总销售金额、称号( >6000 金牌, >5500 银牌 ,>4500 铜牌,否则普通)

Use Test

Select * from MyOrders

Select salesAssistant AS 销售员 ,

SUM(saveNumber*savePrice) as 销售总金额 ,

称号 =

Case

When SUM(saveNumber*savePrice)>6000then’ 金牌 ’

When SUM(saveNumber*savePrice)>5500then’ 银牌 ’

When SUM(saveNumber*savePrice)>4500then’ 铜牌 ’

Else ‘ 普通 ’

End from MyOrders

4

单号 金额

Rk1 10

Rk2 20

Rk3 -30

Rk4 -10

将上面的表输出为如下的格式:

单号 收入 支出

Rk1 10 0

Rk2 20 0

Rk3 0 30

Rk4 0 10

Select Number as 单号 ,

支出 =

case

When ammont>0 then ammont

else 0

end,

收入 =

Case

When ammont<=0 then abs(amount)

Else 0

End

from 表名



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值