您的位置:首页 > 数据库

sql语句小练习

2012-11-07 16:43 253 查看
1计算100天后病毒发作的日期。
print
convert(varchar(50),
dateadd(day,100,getdate()),111)
2凡是入职一年以上的员工,工资增加500¥
update employee
set fsalary=fsalary+500
where datediff(yy,empintime,GETDATE())=1
3计算1975年10月5日到现在现在相差多少年/月/日/小时?
print 
datediff(yy,'1975-10-5',getdate())
print
datediff(mm,'1975-10-5',getdate())
print
datediff(dd,'1975-10-5',getdate())
print
datediff(hh,'1975-10-5',getdate())
4统计2008年入职的员工
select
COUNT(*) from
T_Employee where
DATEPART(yy,
入职日期)='2008'
5输出所有数据中通话时间最长的5条记录。
select top 5
* from
t_callers order by
DATEDIFF(ss,startdatetime,enddatetime)
desc
6将结果集加入一列“通话时长(秒)”
select top 5
*,DATEDIFF(SS,startdatetime,enddatetime)
as 通话时长
from t_callers order
by DATEDIFF(SS,startdatetime,enddatetime)
desc
三、Case函数用法
1.1
use
School
 SELECT
* FROM
Score
 SELECT
* FROM
Student
--90分以上优秀
--80分以上良好
--70分以上中等
--60分以上及格
--60分以下不及格
 
select FName,FEnglish,
(case

when FEnglish>=90
then '优秀'
when FEnglish>=80
then '良好'
when FEnglish>=70
then '中等'
when FEnglish>=60
then '及格'
else '不及格'
end
)
from MyStudents

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

select a,b,
 (
 case
 when a>b
then a
 else b
 end
 ) as
'c'
  from abc

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

  select
销售员,总销售金额=SUM(销售数量*销售价格),
  (
  case
  when
SUM(销售数量*销售价格)>6000
  then '金牌'
  when
SUM(销售数量*销售价格)>5500
  then '银牌'
  when
SUM(销售数量*销售价格)>4500
  then '铜牌'
  else '普通'
  end
  )

   from
MyOrders group by
销售员

4
单号  
金额          

Rk1     10
Rk2     20
Rk3     -30
Rk4     -10
将上面的表输出为如下的格式:
单号  
收入   支出
Rk1     10       0
Rk2     20       0
Rk3      0        30
Rk4      0        10
 
select number,
     (
     case
     when
ammont>0 then
ammont
     else 0
     end
     )as
收入,
     (
     case
     when
ammont>0 then 0
     else
ABS(ammont)
     end
     )as
支出
     
      from
_abs
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: