SQL之waitfor & case
来源:互联网 发布:js求两个数最大公约数 编辑:程序博客网 时间:2024/05/17 06:50
/*waitfor*/
/*WAITFOR { DELAY 'time' | TIME 'time' }
DELAY是在完成 WAITFOR 语句之前等待的时间。完成 WAITFOR 语句之前等待的时间最多为 24 小时。
TIME 关键字后为 time_to_execute,它指定 WAITFOR 语句要等待的时间。
*/
WAITFOR DELAY '00:00:02' SELECT EmployeeID FROM Northwind.dbo.Employees
--指定在执行 SELECT 语句之前等待两秒:
USE pubs
BEGIN
WAITFOR TIME '22:00' DBCC CHECKALLOC
END
--TIME 关键字指定在 10 P.M 以后对指定数据库 pubs 进行检查,以确保所有页的分配和使用正确
--一组要执行的 T-SQL 语句可以包含在 BEGIN END 中,相当于{}
/*while循环*/
WHILE (SELECT AVG(price) FROM good) < 4000
--市场平均价不得超过4000元
BEGIN
UPDATE good
SET price = price * 2
--价格增加一倍
IF (SELECT MAX(price) FROM good) >3000
--商品最高价格不得超过3000
BREAK
ELSE
CONTINUE
END
--市场价分析实例
/*CASE(有列名)*/
create table goods
(
gid int primary key,
gname varchar(10),
price money default 3000
)
insert into goods values (1001,'mp3',default)
insert into goods values (1002,'mp4',default)
insert into goods values (1001,'cpu',default)
select gid,
case gname
when 'mp3' then '显示器'
else 'hd'
end
as gname from goods
--上面六行仅为一条select语句
--CASE与end成对出现
--将or显示为oregon
--case仅修改显示内容,不修改表中实际内容
/*case表达式(无列名)*/
select gid ,
case
when gname='mp3' and gid=1001 then '显示器'
else gname
--上行的列名gname代表无操作
end
as gname from goods
--case表达式与case的主要区别为case表达式可以加条件判断
/*update语句中使用case表达式*/
UPDATE publishers SET state =
CASE
WHEN country <> 'USA' THEN '--'
ELSE state
END
, city =
CASE
WHEN pub_id ='9999' THEN'LYON'
ELSE city
END
WHERE country <>'USA' OR pub_id ='9999'
--上面只有一条语句,不知道使用这样的缩进是把句子结构看清楚了?还是更晕了?
/*WAITFOR { DELAY 'time' | TIME 'time' }
DELAY是在完成 WAITFOR 语句之前等待的时间。完成 WAITFOR 语句之前等待的时间最多为 24 小时。
TIME 关键字后为 time_to_execute,它指定 WAITFOR 语句要等待的时间。
*/
WAITFOR DELAY '00:00:02' SELECT EmployeeID FROM Northwind.dbo.Employees
--指定在执行 SELECT 语句之前等待两秒:
USE pubs
BEGIN
WAITFOR TIME '22:00' DBCC CHECKALLOC
END
--TIME 关键字指定在 10 P.M 以后对指定数据库 pubs 进行检查,以确保所有页的分配和使用正确
--一组要执行的 T-SQL 语句可以包含在 BEGIN END 中,相当于{}
/*while循环*/
WHILE (SELECT AVG(price) FROM good) < 4000
--市场平均价不得超过4000元
BEGIN
UPDATE good
SET price = price * 2
--价格增加一倍
IF (SELECT MAX(price) FROM good) >3000
--商品最高价格不得超过3000
BREAK
ELSE
CONTINUE
END
--市场价分析实例
/*CASE(有列名)*/
create table goods
(
gid int primary key,
gname varchar(10),
price money default 3000
)
insert into goods values (1001,'mp3',default)
insert into goods values (1002,'mp4',default)
insert into goods values (1001,'cpu',default)
select gid,
case gname
when 'mp3' then '显示器'
else 'hd'
end
as gname from goods
--上面六行仅为一条select语句
--CASE与end成对出现
--将or显示为oregon
--case仅修改显示内容,不修改表中实际内容
/*case表达式(无列名)*/
select gid ,
case
when gname='mp3' and gid=1001 then '显示器'
else gname
--上行的列名gname代表无操作
end
as gname from goods
--case表达式与case的主要区别为case表达式可以加条件判断
/*update语句中使用case表达式*/
UPDATE publishers SET state =
CASE
WHEN country <> 'USA' THEN '--'
ELSE state
END
, city =
CASE
WHEN pub_id ='9999' THEN'LYON'
ELSE city
END
WHERE country <>'USA' OR pub_id ='9999'
--上面只有一条语句,不知道使用这样的缩进是把句子结构看清楚了?还是更晕了?
- SQL之waitfor & case
- SQL Server 2008中SQL之WaitFor
- SQL Server 2008中SQL之WaitFor
- SQL Server 2008中SQL之WaitFor
- SQL Server 2008中SQL之WaitFor
- SQL Server 2008中SQL之WaitFor
- SQL 流程控制语句 之四 WAITFOR语句介绍
- Sql 之 case函数
- SQL 之 case when
- WAITFOR (Transact-SQL)
- sql server waitfor
- SQL:waitfor的使用
- sql语句之IN&&EXISTS
- 多線程之WaitFor
- sql之case when 用法
- SQL之 case when then
- Sql之Case When用法
- SQL关键字之case when
- API函数大全
- SQL标准语法之数据库管理
- SQL查询连接实例
- SQL查询连接实例(二)
- SQL查询本年单月单周的星期五
- SQL之waitfor & case
- 图文描述Vs2005制作WEB应用程序安装包的方法[E8.Net正式用户可以找我们获取全部代码参考]
- SQL函数
- Oracle中查询日期类型
- Iris动画效果的代码
- SQL报表之行列变换
- SQL用check约束实现非工作时间不得修改数据
- SQL小写金额换大写金额
- SQL存储过程大全