博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Transact-SQL程序设计

Posted on 2007-10-12 01:55  夜疯子  阅读(109)  评论(0)    收藏  举报

--1.局部变量的声明:
--使用Declare语句来声明局部变量,格式:
Declare @teaduty varchar(8)


--2.局部变量的赋值
--格式一:
Set @teaduty='天才'
--格式二:
select @teaduty='天才'
--示例:
declare @rowcount in                t
select @rowcount=select count(*) from student
select @rowcount


--3.日期格式转换心得
select datepart(year,getdate()) as '年',datepart(month,getdate()) as '月',
datepart(day,getdate()) as '日'

--4.Substring
SUBSTRING ( expression , start , length )
/**参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。**/

--5.Case Convert转换行数

-- Use CAST.
USE pubs
GO
SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales
FROM titles
WHERE CAST(ytd_sales AS char(20)) LIKE '3%'
GO

-- Use CONVERT.
USE pubs
GO
SELECT SUBSTRING(title, 1, 30) AS Title, ytd_sales
FROM titles
WHERE CONVERT(char(20), ytd_sales) LIKE '3%'
GO
select * from titles


--6.循环(While,Break,Continue)
while 条件表达式
 循环体 1
[break]/[Continue]
循环体2
其中:条件表达式:决定循环条件的逻辑表达式。如果表达式中含有Select 语句,必须用圆括号将select括起来
Break:退出循环体。当程序中有多层循环嵌套时,只能退出其所在的这曾循环。
Continue:结束本次循环,重新转到下次循环条件的判断。
在执行循环体语句时,若遇到Break语句,则跳出此循环,执行while后面的语句;若遇到Continue语句,则不执行
循环体2部门重新进行条件判断。


示例:
while(select sum(c_score) from course)<80
begin
update coursel set c_score=c_score+1
if(select max(c_score) from course)>18
break
else
Continue
end
本例子用一条查询学分(C_score)总和的语句并判断是否小于80作为循环语句的条件表达式。
如果总学分小于80执行while语句的循环体:将各门各成的学分加1。然后判断有没有课程的学分
已超过18,如果没有则该循环继续进行,否则终止循环。