程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQl Function 創建函數實例介紹

SQl Function 創建函數實例介紹

編輯:關於SqlServer

 在SQL中系統已為我們提供了很非常豐富的函數:例:聚會函數avg, sum,count,max,min 日期函數:Day,Month,Year等等  為我們日常開發節省很多時間  但是有一些特殊需求的話SQL 也提供自己創建函數的功能下面舉一小例子:需求: 某一訂單表 編號,訂單號,產品名稱 要知道 某一訂單號的產品名稱 名稱之間用逗號(,)隔開 如下圖:

我們創建一個標題函數: StrName 創建過程類似創建存儲過程 如下:

點擊右鍵創建 表值函數與標量函數 從名稱就可以分出來  一個返回表(集合) 標題(單一) 在這個小例子中因為我們只返回名字 所以創建一個標量函數 代碼如下:

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

創建好之後在就可以像avg,sum等函數一樣的使用 減少代碼量 如下

select distinct A.OrderId,
(SELECT [dbo].[OrderDetailGetStrNameByOrderId](A.OrderId)) StrName
from OrderDetail A

完畢。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved