आपकी सबक्वेरी दो मान नहीं लौटा सकती। यदि आप केवल स्ट्रिंग्स को जोड़ना चाहते हैं, तो आपको xml
. की आवश्यकता नहीं है डेटा प्रकार बिल्कुल। आप stuff()
कर सकते हैं और एक ही कथन में सबक्वेरी:
declare @Rep1Names nvarchar(max) = (
stuff((select ', [' + report_name + ']' as name
from (select distinct report_order, report_name
from #report
) x
order by report_order
for xml path('')
)
), 1, 1, '');
declare @Rep2Names nvarchar(max) = (
stuff(select ', isnull([' + report_name + '], 0) as [' + report_name + ']' as res
from (select distinct report_order, report_name
from #report
) x
order by report_order
for xml path('')
)
), 1, 1, '');