您的位置:首页 > 数据库

Day 9:(11)Transact sql语句实训_参考答案

2015-11-23 00:01 429 查看
--Transact sql语句实训_参考答案:

-- 1. 声明2个变量 i int ,j int 分别给 i,j 赋值为 25,35,根据实际情况显示 'i>j',35>25 或 'i<j',25<35 或 'i=j',25=25

declare @i int

declare @j int

select @i=35,@j=35

if @i>@j

  begin

   print 'i>j'

   print str(@i,3)+'>'+str(@j,3)

  end

else
if @i = @j
 begin
  print 'i=j'
  print str(@i,3)+'='+str(@j,3)
 end  

else
 begin
  print 'i<j'
  print str(@i,3)+'<'+str(@j,3)
 end  

-- 2. 查询显示exam表,使t_grade >=90    显示 优;
          --
80<=t_grade<90 显示 良;
          --
70<=t_grade<80 显示 中;
          --
60<=t_grade<70 显示 及格;
          --
t_grade<60 显示 不及格;

 SELECT t_number,c_number,t_grade,'grade'=

   CASE 

      WHEN t_grade>=90 THEN '优'

      WHEN t_grade>=80 and t_grade<90 THEN '良'

      WHEN t_grade>=70 and t_grade<80 THEN '中'

      WHEN t_grade>=60 and t_grade<70 THEN '及格'

      ELSE '不及格'

        END

 FROM exam

-- 3. 使用Northwinds数据库,统计每种产品的销售额,并且根据销售额的大小进行等级划分

   -- 销售额 > 10000(含10000) 显示 '高';在5000和10000之间(含5000) 显示'中',其他显示'低'

select  od.ProductID,productName,str(isnull(sum(od.UnitPrice*od.Quantity*(1-Discount)),0),20,2) as salesamount,

case 

    when isnull(sum(od.UnitPrice*od.Quantity*(1-Discount)),0)>=10000 then '高'

    when isnull(sum(od.UnitPrice*od.Quantity*(1-Discount)),0)>=5000  and isnull(sum(od.UnitPrice*od.Quantity*(1-Discount)),0)<10000 then '中'

    else '低'

  end as 'grade'

from [Order Details] as od join products as p on p.productID = od.productID

group by od.ProductID,productName

order by salesamount desc

-- 4. 用while循环语句来完成1加到10

declare @i int,@j int

set @i=1

set @j=0

while @i<11

  begin

    set @j=@j+@i

    set @i=@i+1

  end

print @j

-- 5. 用goto语句来完成1加到10

declare @i int,@j int

set @i=1

set @j=0

lab:

    set @j=@j+@i

    set @i=@i+1

    if @i<11

      goto lab

    else

    print @j
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql server 数据库