2011-08-30 12 views
6

मेरे पास एक ऐसा फ़ंक्शन है जिसका उपयोग करने की आवश्यकता है, मैं एक var char में गुजर रहा हूं और मैं @ValueList का उपयोग करके एक तालिका में रिकॉर्ड डालता हूं। हालांकि मुझे यकीन नहीं है कि इस फ़ंक्शन को कॉल/उपयोग कैसे करें?मैं एक फ़ंक्शन कैसे कॉल करूंगा जो एक टेबल लौटाता है और एक वर्कर स्वीकार करता है?

ALTER FUNCTION [dbo].[GetListFromCSVString] 
(   
     @csvString varchar(500) 
) 
RETURNS @ValueList TABLE 
(
     ListValue varchar(50) 
) 
AS 
begin 
     -- body 

End 

उत्तर

7
select ListValue 
from dbo.GetListFromCSVString('1,2,3') 

परिणाम:

ListValue 
---------- 
1 
2 
3 

अपने कार्य करने के लिए पैरामीटर एक और तालिका आप cross apply उपयोग करने के लिए स्रोत तालिका में प्रत्येक पंक्ति के लिए मूल्यों की सूची प्राप्त राशि में एक क्षेत्र है।

-- Table to test on 
declare @T table 
(
    ID int identity primary key, 
    SomeColumn varchar(500) 
) 

-- Sample data 
insert into @T values('1,2,3') 
insert into @T values('a,b,c') 

-- Use the function 
select ST.ID, 
     GL.ListValue 
from @T as ST 
    cross apply dbo.GetListFromCSVString(ST.SomeColumn) as GL 

परिणाम:

ID   ListValue 
----------- ---------- 
1   1 
1   2 
1   3 
2   a 
2   b 
2   c 
+0

नहीं करना चाहिए मैं एक मेज नाम के रूप में चर ValueList में पारित करने में सक्षम हो सकता है? – Jules

+0

@ जुल्स - मुझे यकीन नहीं है कि मैं समझता हूं। '@ ValueList' फ़ंक्शन से वापसी मान पैरामीटर नहीं है। –

+0

मैंने पूरे फ़ंक्शन में चिपकाया है, जैसा कि आप देख सकते हैं [at] ValueList एक तालिका का नाम है। – Jules

संबंधित मुद्दे

 संबंधित मुद्दे