Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 有条件地选择列_Sql_Oracle_Plsql - Fatal编程技术网

Sql 有条件地选择列

Sql 有条件地选择列,sql,oracle,plsql,Sql,Oracle,Plsql,在与此类似的查询中: SELECT COLUMN1, CASE WHEN 1=2 THEN COLUMN2 END AS "COLUMN2" FROM TABLE1 …它似乎总是在数据集中返回第2列,其中包含空值。我想避免这样。基本上,在某些情况下,我选择的一列不适用,因此我根本不想选择它。我知道如何在代码中“隐藏”它,但如果可能的话,我希望在数据库过程中实现这一点,而不会使查询过于复杂。这是不可能的。查询必须有一组固定的返回列(从一组已知的表中提取)。该部分不是动态

在与此类似的查询中:

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

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

这是不可能的。查询必须有一组固定的返回列(从一组已知的表中提取)。该部分不是动态的,需要在“编译时”知道


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

能否更详细地解释为什么要这样做?