【问题标题】:Select only Columns without Null values in Oracle在 Oracle 中仅选择没有 Null 值的列
【发布时间】:2014-02-03 09:11:23
【问题描述】:

我的表中有 20 列....

如何只选择没有空值的列

col1 col2 col3
20    12   null

期望的输出

col1 col2 
20    12  

【问题讨论】:

  • 我认为你做不到。要选择的列列表在您的SELECT 语句中进行了硬编码。您可以使用WHEREHAVING 过滤掉行,但不能动态更改列。
  • 这里有很多和你一样关心的问题。 stackoverflow.com/questions/4627938/…stackoverflow.com/questions/2219870/…这些有帮助吗?
  • 问题格式不正确。您是否希望仅选择具有 ALWAYS(这意味着:在每条记录中)NOT NULL 值的列?还是只选择 DDL 上具有 NOT NULL 属性的列?
  • Not NOT NULL 属性...列可能有也可能没有值。我只需要选择有值的列

标签: oracle


【解决方案1】:

SQL 的语义不允许这样做 - 每个 SQL 查询都包含一个投影,您可以通过该投影指定输出中所需的列。

除非您运行两次查询,否则您无法提前知道结果是什么。事实上,即使您运行两次查询,结果也可能在两次之间发生变化(除非您以可序列化模式运行)。

换句话说,这个问题没有多大意义。

另一方面,如果您的要求是在向用户显示时简单地隐藏列,这是一个完全不同的问题 - 答案不在 SQL 中,而是在您的表示逻辑中。

【讨论】:

    【解决方案2】:

    您可以转到表的元数据并检查定义为 NOT NULL 的列并创建仅包含这些列的选择查询。

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 2021-12-29
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 2016-04-26
      相关资源
      最近更新 更多