一、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 [ ; ]