DATEDIFF(datepart,date1,date2)
例: select datediff(yy,'1988.09.14','2012.12.21') 值为:24 select datediff(mm,'1988.09.14','2012.12.21') 值为:291聚合函数
聚合函数也就是统计函数,它主要是对一组值进行计算,它的功能分别是:求和(sum)、求最小(min)、求最大(max)、求总行数(count)、求平均值(avg)
例: 求和:select sum(Name) from TableName 求最小:select min(Name) from TableName 求最大:select max(Name) from TableName 求总数:select count(Name) from TableName 求平均:select avg(Name) from TableNameT-SQL的一些关键字
Print 向客户端返回用户信息
例: print '青苹果' 屏幕上就会显示“青苹果三个字“
Go 用来通知SQL一批语句的结束
Distinct 去掉重复值
Declare 用来声明变量
例: declare @a int
Set 为变量赋值
例: set @a='青苹果'
While 在SQL中用来循环(好像在SQL中用来做循环的关键字不多)
语法: WHILE <条件表达式> BEGIN <命令行或程序块> [BREAK] [CONTINUE] [命令行或程序块] END
While比较重要,我们来做个例子加深一下对While循环的理解:
declare @a intset @a=1while @a<5begin print '青苹果'set @a=@a+1end
输出结果:青苹果
青苹果
青苹果
青苹果
if else 判断语句
判断语句用的还是比较多的我们还是来做个例子说明一下;
求:a、b、c三个数的最大值?
declare @a int,@b int,@c int,@max intset @a=1 set @b=2 set @c=3 if @a>@b set @max=@aelse set @max=@bif @max<@c set @max=@c print @max
输出结果:3
begin end 用来设定一个程序块,将在BEGIN…END内的所有程序视为一个单元执行。
Exists 判断是否存在
Case 也是用来判断的,和IF语句差不多,它的格式为:
CASE <运算式> WHEN <运算式1> THEN <结果1> … WHEN<运算式n> THEN <结果n> [ELSE <结果n+1>] END
Return 用于结束当前程序的执行,返回到上一个调用它的程序或其它程序。在括号内可指定一个返回值。
Goto标示符 用来改变程序执行的流程,使程序跳到标有标识符的指定的程序行再继续往下执行。要注意的是作为跳转目标的标识符可为数字与字符的组合,但必须以“:”结尾,如:“1023:” “qingpingguo:”
例子: declare @a int set @a = 1 qingpignguo: print @a set @a = @a + 1 while @a < 6 goto qingpignguo
输出结果:12345
最后一个给大家看个好玩的:
Waitfor 用来暂停程序执行,直到等待指定时间之后,或所设定的时间已到才继续往下运行程序。
语法: waitfor {delay '时间'|time '时间'}
解释:
(1)‘时间'必须为DATETIME类型数据,且不能包括日期,如‘10:12:05'
(2)DELAY:用来设定等待的时间长短,最多为24小时。(是一个时间间隔)
(3)TIME:用来设定等待结束的时间点(是一个具体的时间)
例子: waitfor delay '00:00:03' print '你好,我是青苹果' go
以上就是T-SQL的所有内容了,接下来我们来利用最后的时间画几个图形:
直角三角形:
declare @a int set @a=1while(@a<11)beginprint replace(space(@a),' ','*')set @a=@a+1end
直角三角形 输出结果:
正方形:
declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<15) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end
正方形 输出结果:
菱形:
declare @a int,@b intset @a=1 set @b=15if(@b%2!=1)print '数字必须都是奇数'elsewhile(@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-2while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1 if (@a<0)breakend
菱形 输出结果:
梯形:
declare @a int,@b intset @a=7 set @b=21if(@a%2=1)while(@a<@b)beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+2end
梯形 输出结果:
矩形:
declare @a intdeclare @b intdeclare @c nvarchar(100)set @a=1set @b=1set @c=''while (@a<9)begin while (@b<23) begin set @c=@c+'*' set @b=@b+1 end print @c set @a=@a+1end
矩形 输出结果:
圆形:
declare @a int,@b intset @a=9 set @b=13while (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a+1endset @a=@a-1beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)endwhile (@a<=@b)beginif(@a%2=1)print space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)set @a=@a-1if(@a<10)breakendset @a=@a-2beginprint space((@b-@a)/2)+replace(space(@a),' ','*')+space((@b-@a)/2)end
圆形输出结果:
The End! 以上就是本文的所有内容,可能写的不够全面,有不足的地方希望大家多多补充,多多发表意见!谢谢!
作者:青苹果
更多SQL内容来自木庄网络博客
- 欢迎访问木庄网络博客
- 可复制:代码框内的文字。
- 方法:Ctrl+C。