【问题标题】:I am trying to return Col1 as a value for a list, IF Col2 = NULL我正在尝试将 Col1 作为列表的值返回,IF Col2 = NULL
【发布时间】:2021-11-01 21:40:53
【问题描述】:

如果相应的 Col2 值 = NULL,我正在尝试返回所有 Col1 值 我曾想过 IF Col2 = NULL Return Col2 END IF,但我不确定如何格式化它,因为当我运行它时,我收到错误说关系运算符无效。感谢您的宝贵时间。

选择 Col1 来自我的表 WHERE IF NULL Col2 = 0;


如果 Col2 = NULL 返回 COL1 别的 如果结束;

================================================ ================== 编辑

对于缺乏信息/展示研究,我深表歉意。第一篇文章,所以我一直在谷歌搜索不同的 IF then 语句来处理 NULL 值。到目前为止,我发现的所有内容都只展示了如何忽略/转换为 0,以便您可以轻松地使用它们。没有关于如何使用它们从另一个 col1 返回值

【问题讨论】:

  • 样本数据和期望的结果会有所帮助。
  • 请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。

标签: sql oracle oracle-apex


【解决方案1】:
SELECT Col1
FROM mytable
WHERE Col2 IS NULL

不需要IFWHERE 是用于行选择的 SQL IF。这仅返回 Col2null 的行。


如果你想返回所有的行,但是当Col2nullNULL时想返回Col1,否则使用

SELECT 
    CASE WHEN Col2 IS NULL THEN Col1 ELSE NULL END as myResultColumn
FROM mytable

【讨论】:

  • 这非常有用,当我尝试运行它时遇到错误,缺少列。你的帮助应该足够有用,我可以从这里弄清楚。谢谢。
【解决方案2】:

使用COALESCE。它返回第一个非空值

SELECT

COALESCE(col1,col2) AS FINAL_COLUMN

FROM [TABLE NAME]

【讨论】:

  • 我很抱歉,但我看不出这将如何在 col2 中找到所有空值?
猜你喜欢
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 2021-05-31
相关资源
最近更新 更多