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

时间:2016-08-11 17:55:16

标签: oracle

如何使用列值作为列名。我试过这个:

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有一个列,其值是另一个表中的列名。

1 个答案:

答案 0 :(得分:1)

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