2015-11-03 28 views
1

還有就是功能Getfunctionname(userid, startdate, enddate)返回表傳遞多個值給函數的參數在SQL

我的問題是可以通過我與多個值的變量?

getfunctionname(@userid, startdate, enddate) 

當變量@userid的價值就像

1 
2 
3 
4 
5 

(實際使用split功能拆分值被1,2,3,4,5

如果我能請讓我知道

+0

http://stackoverflow.com/questions/4624398/passing-multiple-values-for-one-sql-parameter – Athul

+0

[將varchar中的逗號分隔值全部傳遞給SQL Server IN函數]可能的副本(http://stackoverflow.com/questions/878833/passing-a-varchar-full-of-comma-delimited-values-to -a-SQL服務器的功能) –

回答

0

我們È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', '', '' 
1

的一種方法是使一個新的用戶定義的表的數據類型。

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