1、函數的種類
標量函數:返回一個值的函數
內嵌表函數:返回一個表,多行多列,只能寫Select語句
多語句函數:是一種受限的T_SQL ,可以寫 while if語句。受限表現在:在增刪改方面:只能對返回的表進行增刪改,不能對別的表進行增刪改。
For example 1:
create function fn_age (@ageadd int)
returns int
as
begin
declare @age int
declare @ageresult int
set @age=@ageadd+1
select @ageresult=avg(age) from lucy where age like @age
return @ageresult
end
//執行,看一下結果
select dbo.fn_age(20) as result(指明列名)
For example2:
Create function ? 函數名(參數)
Returns ? 返回值數據類型
[with {Encryption | Schemabinding }]
[as]
begin
SQL 語句( 必須有return ? 變量或值)
?
End
?
Schemabinding : 將函數綁定到它引用的對象上(注:函數一旦綁定,則不能刪除、修改,除非刪除綁定)
?
?
Create function AvgResult(@scode varchar(10))
Returns real
As
Begin
?
?
?
?
Where scode like @code
Return @avg
End
?
執行用戶自定義函數
select ? 用戶名。函數名 as ? 字段別名
select dbo.AvgResult(‘s0002’) as result
?
用戶自定義函數返回值可放到局部變量中,用set ,select,exec 賦值
declare @avg1 real ,@avg2 real ,@avg3 real
select @avg1= dbo.AvgResult(‘s0002’)
set @avg2= dbo.AvgResult(‘s0002’)
exec @avg3= dbo.AvgResult ‘s0002’
select @avg1 as avg1 ,@avg2 as avg2 ,@avg3 as avg3
?
函數引用
?
create function code(@scode varchar(10))
returns varchar(10)
as
begin
declare @ccode varchar(10)
set @scode = @scode + ‘%’
select @ccode=ccode from cmessage
?
return @ccode
end
?
select name from class where ccode = dbo.code(‘c001’)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
