SQL Server语句大全(2)-------流程控制语句(一)

2014-11-24 12:06:55 · 作者: · 浏览: 0

SQL Server语句大全(2)-------流程控制语句
相关链接:
SQL Server语句大全(1)
http://www.2cto.com/database/201207/144543.html
流程控制语句
www.2cto.com
IF ELSE 语句
用法如下:
[plain]
declare @x int @y int @z int select @x = 1 @y = 2 @z=3
if @x > @y
print 'x > y' --打印字符串'x > y'
else if @y > @z
print 'y > z'
else print 'z > y'
CASE 语句
用法如下:
[plain]
use pangu
www.2cto.com
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
WHILE CONTINUE BREAK
用法如下:
[plain]
declare @x int @y int @c int
www.2cto.com
select @x = 1 @y=1
while @x < 3
begin
print @x --打印变量 x 的值
while @y < 3
begin
select @c = 100*@x + @y
print @c --打印变量 c 的值
select @y = @y + 1
end
select @x = @x + 1
select @y = 1
end
WAITFOR
用法如下:
[plain]
--例 等待 1 小时 2 分零 3 秒后才执行 SELECT 语句
www.2cto.com
waitfor delay 01:02:03
select * from employee
[plain]
--例 等到晚上 11 点零 8 分后才执行 SELECT 语句
waitfor time 23:08:00
select * from employee
SELECT
语法格式如下:
select *(列名) from table_name(表名) where column_name operator value
select * from stock_information where stockid = str(nid)
stockname = 'str_name'
www.2cto.com
stockname like '% find this %'
stockname like '[a-zA-Z]%' --------- ([]指定值的范围)
stockname like '[^F-M]%' --------- (^排除指定范围)
--------- 只能在使用 like 关键字的 where 子句中使用通配符)
or stockpath = 'stock_path'
or stocknumber < 1000
and stockindex = 24
not stock*** = 'man'
stocknumber between 20 and 100
stocknumber in(10,20,30)
order by stockid desc(asc) --------- 排序,desc-降序,asc-升序
order by 1,2 --------- by 列号
stockname = (select stockname from stock_information where stockid = 4)
--------- 子查询
--------- 除非能确保内层 select 只返回一个行的值,
--------- 否则应在外层 where 子句中用一个 in 限定符
select distinct column_name form table_name --------- distinct 指定检索独有的列值,
www.2cto.com
不重复
select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_name
select stockname , "stocknumber" = count(*) from table_name group by stockname
--------- group by 将表按行分组,指定列中有相同的值
having count(*) = 2 --------- having 选定指定的组
select *
from table1, table2
where table1.id *= table2.id -------- 左外部连接,table1 中有的而 table2 中没有得
以 null 表示
table1.id =* table2.id -------- 右外部连接
select stockname from table1
union [all] ----- union 合并查询结果集,all-保留重复行
select stockname from table2
insert
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
www.2cto.com
value (select Stockname , Stocknumber from Stock_table2)---value 为 select 语句
update
update table_name set Stockname = "xxx" [where Stockid = 3]
Stockname = default
Stockname = null
Stocknumber = Stockname + 4
delete
delete from table_name where Stockid = 3
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
drop table table_name --------------- 完全删除表
ww