变量:
对于变量,无论是赋值还是引用,都必须在变量名前面加一个“@"符号。
变量的声明:declare @var_name data_type
变量的赋值:set declare @var_name=value
select @var_name=col from table,注意这里的col必须是table表中返回的一个单值。
函数的创建:
标量函数:函数返回一个值,其创建过程大致为:
create function func_name(@para1 data_type, ...) returns data_type as begin ... return @ret_value end
表值函数:函数返回一个元组,其创建过程大致为:
create function func_name(@para1 data_type, ...) returns table as return ( ... )
可以在returns table部分定义返回表的列名以及变量类型。
一些常见的函数:
SQL语句中有使用频率比较高的函数,这里我稍微整理了下
convert函数,用于进行变量类型转换,使用规则为:convert(data_type, @var_name),将变量@var_name的类型转换成data_type类型
cast函数,也是用于进行变量转换的,使用规则为:cast(@var_name as data_type),将变量@var_name的类型转换成data_type类型
print函数,用于打印一个变量的值,使用规则为:print @var_name
如果avg的参数是整数,但是要求返回值是小数的话,需要先将这个整数型的参数转换成小数再参与avg运算。
if语句:
if(condition) begin ... end else begin ... end
常规的循环语句:
while condition begin ... end
游标循环遍历:
declare @var_name data_type --声明一个变量用于存储游标中的值 declare c cursor for select col from table --声明一个游标,来存储表的一列数据 open c --打开游标 fetch next from c into @var_name --将游标中的值放入var_name变量中以进行操作 while @@FETCH_STATUS = 0 --@@FETCH_STATUS是一个全局变量,用于判断游标中的值是否遍历完毕 begin ... fetch next from c into @var_name --这一步相当于常规循环中的步长语句 end close c --关闭游标 deallocate c --释放游标占的内存
创建用户定义聚合:
参考链接:创建用户定义聚合