有条件地选择一列

时间:2011-09-07 11:20:26

标签: sql oracle plsql

在与此类似的查询中:

SELECT 
  COLUMN1,
  CASE WHEN 1=2 THEN
    COLUMN2
  END AS "COLUMN2"
FROM
  TABLE1

...它似乎总是在数据集中返回COLUMN2,其中包含NULL值。我想避免这种情况。基本上,在某些情况下,我选择的其中一列不适用,因此我根本不想选择它。我知道如何在代码中“隐藏”它,但我想在数据库过程中实现这一点,如果可能的话,不会使查询过于复杂。

1 个答案:

答案 0 :(得分:4)

这是不可能的。查询必须具有一组固定的列(它从一组已知的表中绘制)。那部分不是动态的,需要在“编译时”知道。

您需要删除应用程序中的列(或者有多个查询,可能在客户端代码中动态生成)。