2015-11-26 5 views
0

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

ОТДЕЛ (таблица):

+-----------+---------+-----------+-----------+ 
| DEPT_NAME | DEPT_ID | DEPT_CITY | DEPT_TYPE | 
+-----------+---------+-----------+-----------+ 
|   |   |   |   | 
+-----------+---------+-----------+-----------+ 

Теперь мой ВЫБРАТЬ запрос должен be:

SELECT DEPT_NAME,DEPT_ID,DEPT_CITY from LOCATIONS table where (external condition); 
+0

, чтобы вы могли принимать значения из одной таблицы и использовать их в качестве полей в выбранной части инструкции sql? – Thomas

ответ

0

если вы используете MS SQL вы можете использовать FOR XML Path («») заявление и создать dymanic SQL-запрос, как следует: (I dnn't имеет доступ к системам управления другого SQL, так что я не знаю, если это будет работать для них

DECLARE @columns varchar(255) = (select ',' + [Column] FROM (Values('DEPT_NAME'),('DEPT_ID'),('DEPT_CITY'),('DEPT_TYPE')) as tColumns([column])FOR XML PATH('')) 
--select @columns 

DECLARE @stmt varchar(255) = 'Select 1 as DummyColumn ' + @columns + ' from LOCATIONS table where (external condition);' 
--select @stmt 
EXEC(@stmt) 

в этом случае я использую 255 как длину. переменная ле; но вы можете изменить это по своему вкусу.

(Значения ('DEPT_NAME'), ('DEPT_ID'), ('DEPT_CITY'), ('DEPT_TYPE')), поскольку tColumns ([column]) является встроенной таблицей значений; вам нужно заменить это правильной инструкцией select.

Смежные вопросы