如何使用查询结果或列值来定义选择列名称?

问题描述:

如何使用列值作为列名称。我试过这个:如何使用查询结果或列值来定义选择列名称?

SELECT TableX.(
SELECT OdTable.columnamecell 
from OdTable 
where 1 =1 
AND OdTable.KeyValue = TableX.SomeValue 
) as MyValue 
,TableX.OtherValue as OtherValue 
, TableX.SomeValue 
from TableX 
WHERE 1 = 1 

或者换一种说法:我可以使用表列值作为另一个查询或子查询的列名吗?

澄清:表:OdTable有一列,其值是另一个表中的列名。

+0

您正在使用哪个数据库,MySQL,SQL Server或Oracle? –

+0

用您的ACTUAL数据库标记此标签,而不是每个可能的数据库的汤。如果你使用的是mysql,那么oracle的答案将完全无用。 –

+0

我想你想旋转,但我不能肯定地说。你的问题很不清楚。 – sstan

不,和是。你不能用“标准”SQL来做到这一点;在查询编译时,所有表名和列名必须以文字形式被知道;它们不能在运行时提供。你想要什么被称为“动态SQL”;有时候它是解决问题的唯一方法,但大多数时候在没有必要时使用它。它有几个缺点(安全风险,性能损失,难以维护......)