SQl Function 創(chuàng)建函數(shù)實例介紹
在SQL中系統(tǒng)已為我們提供了很非常豐富的函數(shù):例:聚會函數(shù)avg, sum,count,max,min 日期函數(shù):Day,Month,Year等等 為我們?nèi)粘i_發(fā)節(jié)省很多時間 但是有一些特殊需求的話SQL 也提供自己創(chuàng)建函數(shù)的功能下面舉一小例子:需求: 某一訂單表 編號,訂單號,產(chǎn)品名稱 要知道 某一訂單號的產(chǎn)品名稱 名稱之間用逗號(,)隔開 如下圖:
我們創(chuàng)建一個標(biāo)題函數(shù): StrName 創(chuàng)建過程類似創(chuàng)建存儲過程 如下:
點擊右鍵創(chuàng)建 表值函數(shù)與標(biāo)量函數(shù) 從名稱就可以分出來 一個返回表(集合) 標(biāo)題(單一) 在這個小例子中因為我們只返回名字 所以創(chuàng)建一個標(biāo)量函數(shù) 代碼如下:
Create FUNCTION [dbo].[OrderDetailGetStrNameByOrderId] ( @OrderId int ) RETURNS varchar(500) AS BEGIN -- Declare the return variable here declare @StrPassengername varchar(500) set @StrPassengername='' select @StrPassengername=@StrPassengername+ Passengername +', ' from OrderDetail where OrderId=@OrderId select @StrPassengername=substring(@StrPassengername,0,len(@StrPassengername)) -- Return the result of the function RETURN @StrPassengername END
創(chuàng)建好之后在就可以像avg,sum等函數(shù)一樣的使用 減少代碼量 如下
select distinct A.OrderId, (SELECT [dbo].[OrderDetailGetStrNameByOrderId](A.OrderId)) StrName from OrderDetail A
完畢。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。