dbo.Split()
जैसे dbo.Split()
से तालिका-मूल्यवान फ़ंक्शन को देखते हुए, मैं कई पंक्तियों को तर्क के रूप में कैसे पास करूं?एकाधिक पंक्तियों पर तालिका-मूल्यवान फ़ंक्शन निष्पादित करें?
यह काम करता है:
SELECT *
FROM dbo.Split
(',', (SELECT myColumn FROM Stuff WHERE id = 22268))
WHERE ISNULL(s,'') <> ''
यह रिटर्न:
pn s
----------- -----------
1 22351
2 22354
3 22356
4 22357
5 22360
लेकिन यह नहीं करता है:
SELECT *
FROM dbo.Split
(',', (SELECT myColumn FROM Stuff))
WHERE ISNULL(s,'') <> ''
न ही ऐसा करता है:
SELECT * FROM dbo.Split_temp(',', myColumn), Stuff
The docs कहते हैं:
जब एक उपयोगकर्ता परिभाषित समारोह है कि एक मेज की ओर से एक सबक्वेरी के FROM खंड में उत्पन्न होता है, समारोह तर्क बाहरी क्वेरी से किसी भी स्तंभ संदर्भ नहीं दे सकता। सेट
परिणाम की तरह मैं कुछ ऐसा दिखाई देगा के लिए देख रहा हूँ:
id pn s
----------- ----------- -----------
22268 1 22351
22268 2 22354
22268 3 22356
22268 4 22357
22268 5 22360
24104 1 22353
24104 2 22355
24104 3 22356
24104 4 22358
24104 5 22360
24104 6 22362
24104 7 22364
.
.
.
वहाँ सब पर किसी भी तरह से (अलग ज़ाहिर है, एक कर्सर, से) यह पूरा करने के है?
(संपादित करें)
MarlonRibunal द्वारा अनुरोध के रूप में, एक नमूना तालिका के ऊपर परिणाम उपज की तरह दिखता है:
id myColumn
----------- -------------------------------------------
22268 22351,22354,22356,22357,22360,
24104 22353,22355,22356,22358,22360,22362,22364,
id
एक int
है; myColumn
एक varchar(max)
है।
बहुत बढ़िया! दूसरा "फ्रॉम स्टफ" वास्तव में एक वाक्यविन्यास त्रुटि के रूप में चिह्नित किया गया था, लेकिन इसे हटाने के बाद, कथन ने वही किया जो मैं चाहता था। धन्यवाद। –
ठीक है, मैंने इसे अपनी प्रतिलिपि/पेस्ट से छोड़ा - मैंने यहां कोड का परीक्षण और सही किया है। –
'isnull (results.s, '') <> '' 'का उपयोग क्यों करें जब' परिणाम.s शून्य नहीं है 'भी काम करता है और बहुत अधिक terse है? – tgandrews