sql server 笔记1--case、WAITFOR、TRY CATCH

一、case

转自:http://blog.csdn.net/add8849/article/details/576424

深入使用:http://blog.csdn.net/akuoma/article/details/5836491

1. SQL中 case when then end的用法

示例一

SELECT 学号, 姓名, 
 等级= 
    CASE 
    WHEN 总学分 IS NULL THEN ‘尚未选课’
       WHEN 总学分 < 50 THEN ‘不及格’
        WHEN 总学分 >=50 and 总学分<=52 THEN ‘合格’
        ELSE ‘优秀’
    END  FROM  XS    WHERE 专业名=’计算机’ 

示例二

update employee
set e_wage =
 case
  when job_level = ’1’ then e_wage*1.08
  when job_level = ’2’ then e_wage*1.07
  when job_level = ’3’ then e_wage*1.06
  else e_wage*1.05
 end 

示例三

select a, (case a when 1 then '中' else '国' end) AS B  from table1

2.sqlserver字符串拆分(split)方法汇总 :http://www.cnblogs.com/aierong/archive/2008/11/19/sqlserver_split.html

二、WAITFOR

WAITFOR { DELAY time | TIME time | (receive_statement) [TIMEOUT timeout] }
说明: DELAY 可以继续执行批处理、存储过程或事务之前必须经过的指定时段,最长可以24小时。
Time 要等待的时间。可以使用datetime数据可接受的格式之一指定time,也可以将其指定为局部变量,不能指定日期。
因此,不允许指定datetime值的日期部分
TIME 指示SQL Server等待到指定时间。
receive_statemen 任何有效的RECEIVE语句。
例1:下面的示例使用TIME关键字等到晚上10点执行【体育场管理系统】数据库检查来确保所有页已正确分配和使用:
USE 体育场管理系统 GO BEGIN WAITFOR TIME '22:00' DBCC CHECKALLOC END GO
例2:waitfor delay '00:00:03'; select * from tableA

三、TRY CATCH :http://technet.microsoft.com/zh-cn/library/ms175976.aspx

BEGIN TRY
     { sql_statement | statement_block }
END TRY
BEGIN CATCH
     [ { sql_statement | statement_block } ]
END CATCH
[ ; ]

posted on 2013-11-07 09:10  伊伦  阅读(298)  评论(0编辑  收藏  举报

导航