1. --在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{}
  2. declare @yz real,@w int --声明变量
  3. set @w=120 --为变量赋值
  4. if @w<=100 --if条件语句
  5. begin --Begin程序块
  6. set @yz=@w*0.12 --为变量赋值
  7. end
  8. else
  9. begin
  10. set @yz=100*0.12+(@w-100)*0.05
  11. end
  12. /*输出邮件的重量和邮费*/
  13. print '邮件的重量是:'+cast(@w as varchar(20))+'克'
  14. print '邮费是:'+cast(@yz as varchar(20))+'元'
  15.  
  16. -- if-else在数据库查询的应用
  17. declare @x int
  18. set @x =1000
  19. if @x>950
  20. begin
  21. set @x=@x+1000
  22. select * from 职工 where 工资>@x
  23. end
  24. else
  25. begin
  26. set @x=@x-50
  27. select * from 仓库 where 面积<@x
  28. END
  29.  
  30. -- if...else if ...多条件判断
  31. declare @hyuser varchar(50) ,@hypwd varchar(50),@msg varchar(50)
  32. select @hyuser='liping' , @hypwd='111'
  33.  
  34. if @hyuser='hystu1'
  35. begin
  36. if @hypwd='111'
  37. set @msg='用户名与密码正确,成功登录!'
  38. else
  39. set @msg='密码不正确,请重新输入!'
  40. end
  41. else if @hyuser='hystu2'
  42. begin
  43. if @hypwd='222'
  44. set @msg='用户名与密码正确,成功登录!'
  45. else
  46. set @msg='密码不正确,请重新输入!'
  47. end
  48. else if @hyuser='hystu3'
  49. begin
  50. if @hypwd='333'
  51. set @msg='用户名与密码正确,成功登录!'
  52. else
  53. set @msg='密码不正确,请重新输入!'
  54. end
  55. else
  56. set @msg='用户名不正确,请重新输入!'
  57. print @msg
  58.  
  59. --if...else...登陆判断
  60. declare @hyuser varchar(50) ,@hypwd varchar(50),@msg varchar(50)
  61. select @hyuser='stu1' , @hypwd='111'
  62. if exists(select * from hyuser where hyname=@hyuser )
  63. begin
  64. if exists(select * from hyuser where hyname=@hyuser and hypwd=@hypwd )
  65. set @msg='用户名与密码都正确,成功登录!'
  66. else
  67. set @msg='密码不正确,请重新输入!'
  68. end
  69. else
  70. set @msg='用户名不正确,请得新输入!'
  71. print @msg
  72.  
  73. --case when 多条件判断
  74. declare @cj float,@str varchar(60)
  75. set @cj=90
  76. set @str=
  77. case
  78. when @cj>100 or @cj<0 then '你输入的成绩不对,成绩应在0-100之间'
  79. when @cj>=60 and @cj<70 then '及格'
  80. when @cj>=70 and @cj<80 then '中等'
  81. when @cj>=80 and @cj<90 then '优良'
  82. when @cj>=90 and @cj<=100 then '优秀'
  83. else '不及格'
  84. end
  85. print '该学生的成绩评语:' + @str
  86.  
  87. --查询不同仓库的平均工资
  88. select * ,
  89. 不同仓库的平均工资 =
  90. case
  91. when 仓库号='wh1' then (select avg(工资) from 职工 where 仓库号='wh1')
  92. when 仓库号='wh2' then (select avg(工资) from 职工 where 仓库号='wh2')
  93. when 仓库号='wh3' then (select avg(工资) from 职工 where 仓库号='wh3')
  94. when 仓库号='wh4' then (select avg(工资) from 职工 where 仓库号='wh4')
  95. end
  96. from 职工
  97.  
  98. --利用循环语句 while计算1-120相加总和
  99. declare @x int, @sum int --声明变量
  100. select @x=0,@sum=0 --为变量赋值
  101. while @x<=120 --While循环语句
  102. begin --程序块的开始
  103. set @sum=@sum+@x
  104. set @x=@x+1
  105. end --程序块的结构
  106. --利用print进行输出
  107. print '从1加120之和是:'+ cast(@sum as varchar(50))
  108.  
  109. --跳转语句 break
  110. --求从1加到10的和 但如果求得的和大于30 则跳出
  111. declare @x int, @sum int
  112. select @x=0,@sum=0
  113. while @x<=10
  114. begin
  115. set @x=@x+1
  116. set @sum=@sum+@x
  117. if @sum>30
  118. break
  119. end
  120. waitfor delay '00:00:01'
  121. print '等1秒后输出'
  122. print '最后结果是:'+ cast(@sum as varchar(50))
  123.  
  124. --跳转语句 continue
  125. --求1-120之间所有偶数的和
  126. declare @x int, @sum int
  127. select @x=0,@sum=0
  128. while @x<=120
  129. begin
  130. set @x=@x+1
  131. if @x%2=1
  132. continue
  133. set @sum=@sum+@x
  134. end
  135. print '从1加120所有偶数之和是:'+ cast(@sum as varchar(50))
  136.  
  137. --跳转语句 goto
  138. --利用goto1-100之间的和
  139. declare @x int,@sum int
  140. set @x=0
  141. set @sum=0
  142. bz:
  143. set @x=@x+1
  144. set @sum=@sum+@x
  145. while @x<100 goto bz
  146. print '利用Goto语名求从1加到100的和:'+ cast(@sum as varchar(50))
  147.  
  148. --跳转语句 return
  149. --创建自定义函数 计算奖金
  150. create function myfun(@x int) returns int
  151. as
  152. begin
  153. declare @y int
  154. set @y=@x*0.15
  155. return @y
  156. END
  157.  
  158. select *,dbo.myfun(工资) as 奖金 from 职工

SqlServer和Oracle中一些常用的sql语句5 流程控制语句的更多相关文章

  1. SqlServer和Oracle中一些常用的sql语句9 SQL优化

    --SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...

  2. SqlServer和Oracle中一些常用的sql语句10 特殊应用

    --482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...

  3. SqlServer和Oracle中一些常用的sql语句3 行列转换

    --217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009- ...

  4. SqlServer和Oracle中一些常用的sql语句6 存储过程

    --不带参数的存储过程 CREATE procedure proc_sql1 as begin declare @i int set @i=0 while @i<26 begin print c ...

  5. SqlServer和Oracle中一些常用的sql语句7 游标

    declare db_cursor4 scroll cursor for select * from 供应商 --声明游标 open db_cursor4 --打开游标 fetch first fro ...

  6. SqlServer和Oracle中一些常用的sql语句8 触发器和事务

    --创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if E ...

  7. SqlServer和Oracle中一些常用的sql语句4 局部/全局变量

    --把wh1仓库号中姓名含有"平"字的职工工资在原来的基础上加288 update 职工备份 set 工资=工资+288 where 仓库号='wh1' and 姓名 like ' ...

  8. SqlServer 获取字符串中小写字母的sql语句

    SQL字符串截取(SubString) 作用:返回第一个参数中从第二个参数指定的位置开始.第三个参数指定的长度的子字符串. 有时候我们会截取字符串中的一些特殊想要的东西,大小写字母.模号.汉字.数字等 ...

  9. SqlServer 查看备份文件中逻辑文件信息的Sql语句

    RESTORE FILELISTONLY FROM DISK = 'D:\All\DataBase\(2013-12-18)-1.bak' 用来查看备份文件中的逻辑文件信息. 相关信息:SqlServ ...

随机推荐

  1. Project 3:N级魔方阵

    魔方阵:由n*n个数字所组成的n阶方阵,具有各对角线,各横列与纵行的数字和都相等的性质,称为魔方阵.而这个相等的和称为魔术数字.若填入的数字是从1到n*n,称此种魔方阵为n阶正规魔方阵. 目标:输入一 ...

  2. 即时作图新工具—ProcessOn【推荐】…

    www.processon.com 推荐这个在线作图网站:免费登录,云端存储,面向对象,最重要的是提供了丰富模板! 在线软件的人气会越来越高,这是趋势啊~

  3. 通过修改my.ini配置文件来解决MySQL 5.6 内存占用过高的问题

    打开后台进程发现mysql占用的内存达到400+M. 修改一下my.ini这个配置文件的配置选项是可以限制MySQL5.6内存占用过高这一问题的,具体修改选项如下: performance_schem ...

  4. 201521123055 《Java程序设计》第7周学习总结

    1. 本章学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 1.2 解释E remove(int index)源代码 1.3 结合1.1 ...

  5. 201521123077 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  6. 201521123106《java程序设计》第一周学习总结

    1.本章学习总结 认识了java语言,了解了java的历史,学习了各种java相关文件的使用,能够进行基本的程序操作,学会了使用博客.码云. 2.书面作业 1.为什么java程序可以跨平台运行?执行j ...

  7. 201521123071 《JAVA程序设计》第十周学习总结

    第十周-异常与多线程 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业:本次PTA作业题集异常.多线程 1. finally:题目4-2 1. ...

  8. 201521123075 《Java程序设计》第12周学习总结

    1. 本周学习总结 2. 书面作业 将Student对象(属性:int id, String name,int age,double grade)写入文件student.data.从文件读出显示. 1 ...

  9. 《Java课程设计》

    一. 本组课题 简易文件资源管理器 需求分析 查找文件功能:可以根据指定的目录名与待查找的文件,在指定目录中进行查找,并返回结果 实现文件的拷贝与粘贴功能 实现文本类文件(.txt, .java, . ...

  10. 201521123101 《Java程序设计》第13周学习总结

    1. 本周学习总结 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 1.2 te ...