Как вы используете динамический запрос в подзапросе? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть фиксированный запрос, по которому я могу добавить только новые столбцы, скажем так:

SELECT '1', '2' , 'Place I can insert my subquery1', 'Place I can insert my subquery1'
FROM FixedQueryTable

У меня также есть таблица со столбцом, в котором хранятся некоторые значения, и еще одна, в которой хранится имястолбцы, из которых мне нужно получить другие значения.

TABLE1
----------------------------
ValuesColumn | NameColumn
_________________________
Val1  | Col1
Val2  | Col2
Val3  | Col3

Table2
----------------------------
Col1|Col2|Col3
______________
Val4|Val5|Val6

Теперь я хочу вернуть

1|2|Val1Val4|Val2Val5|Val3Val6

Я написал это

declare @qry nvarchar(max) = 
'SELECT top 1 ' + 
        STUFF((
                SELECT ', ' +''''+ ValueColumn +'''+ CONVERT(NVARCHAR,' +NameColumn +') ' 
                FROM Table1 
                FOR XML PATH('')
                ), 1, 1, '')  + ' FROM Table2'
select @qry
execute sp_executesql @qry

И он прекрасно работает как отдельный, но я не могу использовать его для возврата результата из функции, и я не могу использовать его напрямую как подзапрос (очевидно, exec и т. Д.). Знаете ли вы, что я мог сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...