sql - 有条件地选择一列

标签 sql oracle plsql

在与此类似的查询中:

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

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

最佳答案

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

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

关于sql - 有条件地选择一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332968/

相关文章:

mysql - (MySQL) 连接一个具有单独日期的表和另一个具有日期范围的表

PHP mysql 使用变量进行搜索

oracle - 立即执行多个更新

oracle - 使用 For 循环在 Oracle 过程中检索多行

oracle - PL/SQL : How to handle timeout for DBMS_AQ. 出列

sql - 将时间范围分为全天范围和之前/之后的剩余小时数

java - 使用 select 和 update 更新 double 类型的列

sql-server - 使用WITH将Oracle查询转换为T-SQL查询

sql - rowid 插入 Oracle 后可以立即失效吗?

oracle - 在 Oracle 中生成随机数