[英]Set a Value as a Column Name in SQL Select
假设我从表中进行选择后有一个值列表:
部门(表):
+-----------+---------+-----------+-----------+
| DEPT_NAME | DEPT_ID | DEPT_CITY | DEPT_TYPE |
+-----------+---------+-----------+-----------+
| | | | |
+-----------+---------+-----------+-----------+
现在,我的SELECT查询应该是:
SELECT DEPT_NAME,DEPT_ID,DEPT_CITY from LOCATIONS table where (external condition);
我认为可以使用数据透视表来完成。
请检查此教程http://www.artfulsoftware.com/infotree/queries.php#78
进一步,您可以在SO本身, MySQL数据透视表中检查这些
如果您使用的是MS SQL,则可以使用FOR XML Path('')语句并按以下方式创建动态SQL查询:(我无权访问其他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作为变量的长度; 但您可以根据自己的喜好将其更改。
(Values('DEPT_NAME'),('DEPT_ID'),('DEPT_CITY'),('DEPT_TYPE'))作为tColumns([column])是内联值表; 您需要用正确的select语句替换它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.