server是什麼 - t-sql




在SQL中將多個值傳遞給一個函數的參數 (2)

使用CSV的概念

CREATE FUNCTION [dbo].[uspGetNumbers]
    userid,startdate,enddate // define your paramters the way you want
AS
BEGIN
// your code
JOIN dbo.fnSplit(@UserIDs, ',') 
END
GO

功能示例:

SELECT [dbo].[uspGetNumbers] '1,2,3,4,5', '', ''

函數Getfunctionname(userid, startdate, enddate)返回一個表

我的問題是我可以傳遞多個值的變量?

getfunctionname(@userid, startdate, enddate)

變量@userid的值是這樣的

1
2
3
4
5

(實際上使用split函數將值1,2,3,4,5分開)

如果我可以請讓我知道


我喜歡的一種方法是創建一個新的用戶定義的表格數據類型。

CREATE TYPE [dbo].[IdList] AS TABLE(
    [Id] [int] NULL
)

然後您可以使用該數據類型作為參數之一

CREATE FUNCTION Getfunctionname
(   
    @UserIDs dbo.IdList READONLY,
    @startdate INT,
    @endtdate INT
     )
RETURNS @ReturnTable TABLE                                        
   (                                        
     -- ReturnTable
   )
AS
BEGIN
  -- Query    
RETURN

END




sql-server-2012