Как передать один запрос respose как столбец другого запроса? - PullRequest
0 голосов
/ 20 апреля 2019

Я должен использовать SubClass1 в качестве имени столбца другого запроса. Например:

select SubClass1 from abc 

как передать Subclass1 в виде строки в функции

Это мой ответ на запрос sql

select Fieldname from xyz where id='1':

FieldName
----------------
SubClass1

Ответы [ 3 ]

2 голосов
/ 20 апреля 2019

Вы должны использовать динамический sql.

Сначала сохраните ответ на запрос в переменной.

DECLARE @columnname varchar(50)=''
set @columnname=(select QUOTENAME(FieldName) from xyz where id=1)

затем используйте эту переменную в динамическом SQL-запросе.

exec('select '+@columnname+' from abc')

ПРИМЕЧАНИЕ: здесь пример только для одного вывода из первого ответа на запрос. если вам нужно несколько столбцов, вы должны использовать COALESCE, чтобы объединить строки в один результат.

2 голосов
/ 20 апреля 2019

вы можете использовать подзапрос, выберите sql

например в вашем коде:

select SubClass1 as Column1,(select Fieldname from xyz where id='1') as Column2 from abc 

Пожалуйста, используйте простую базу данных Northwind и попробуйте ... также верните свой ответ о Nested select

1 голос
/ 20 апреля 2019

Вы можете использовать динамический SQL

DECLARE @variable varchar(max);
DECLARE @query varchar(max);
--Select the value you want to set as column name
SET @variable = (SELECT top(1) column_name FROM table1);
--Use the variable in the second table as column name
SET @query = 'select '+@variable+' from table2';
EXEC(@query);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...