码迷,mamicode.com
首页 > 数据库 > 详细

Sql编程

时间:2016-03-08 23:56:03      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

首先先了解变量是什么?

  变量是一块内存空间的表示

局部变量:  

      第一套变量定义  整型

      Declare @num int

  Set @num=10

 

    第二套变量定义   字符串类型(char  varchar  nvarchar)

  Declare @name nvarchar(32)

  Set @name=’小贱贱’

  

  第3套变量定义   小数类型(float decimal  numberic(18,0))

  Declare @number float

  Set @number =1.3

 

  第4套变量定义   日期类型(datetime))

  Declare @mydate  datetime

  Set @mydate=getDate()

select set赋值方式的区别

  区别1set不支持一次性给多个变量赋值,但select支持

  区别2:如果给一个变量赋多个值,set报错,select返回最后一个

  区别3:如果结果集为空值,set方式返回null,而select返回原值

全局变量:

切记:程序员不能自己定义全局变量,只能从全局变量中取值。

   @@ERROR     返回最后一个T-SQL错误的错误号

   @@IDENTITY  返回最后一次插入的标识值

   @@ROWCOUNT 返回受上一个SQL语句影响的行数

   @@SERVERNAME  返回本地服务器的名称

   @@VERSION   返回SQL Server的版本信息

输出语句

  print  局部变量或字符串

      select  局部变量 as 自定义列名

逻辑控制语句:

  顺序控制结构语句:BECGIN-END

  分支结构控制语句:IF-ELSE语句和CASE-END语句

  循环结构控制语句:WHERE语句

IF-ELSE语句示例:

 declare @avg int

 select @avg= AVG(studentresult) from Result,Subject

 where  Result.SubjectId=Subject.SubjectId 

 and ExamDate>=‘2013-08-09‘ 

 and ExamDate<‘2013-08-10‘

 and Subject.SubjectName=‘oop‘

--02.判定:>=70  显示优秀,同时显示分数最高的三个人的分数

 if(@avg>=70)

 begin

  print ‘优秀

   --显示前名成绩  当天  oop

    select top 3 * from Result,Subject

    where result.SubjectId=Subject.SubjectId

    and ExamDate>=‘2013-08-09‘

    and ExamDate <‘2013-08-10‘

    and SubjectName=‘oop‘

    --降序排列desc

    order by   StudentResult desc  

  end

  else

  begin

    print ‘较差

   --显示前名成绩  当天  oop

    select top 3 * from Result,Subject

    where result.SubjectId=Subject.SubjectId

    and ExamDate>=‘2013-08-09‘

    and ExamDate <‘2013-08-10‘

    and SubjectName=‘oop‘

    --降序排列desc

    order by   StudentResult asc

  end

CASE-END语句示例:

  declare @SubId int
  select @SubId=Subjectid from Subject
  where SubjectName=‘oop‘

--获取最近日期
  declare @maxdate datetime
  select @maxdate=MAX(examdate) from Result
  where SubjectId=@SubId

  select StudentNo, 成绩=
  case
    when studentresult>=90 then ‘A‘
    when studentresult>=80 then ‘B‘
    when studentresult>=70 then ‘C‘
    when studentresult>=60 then ‘D‘
    else ‘E‘
  end
  from Result,Subject
  where Subject.SubjectId=@SubId and ExamDate=@maxdate

 

Sql编程

标签:

原文地址:http://www.cnblogs.com/szj-ang/p/5256186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!