在 SQL oracle SELECT 查询中用空值或空值替换非空值

Replace non-null values with blank or null values in SQL oracle SELECT query

我基本上是在尝试编写一个查询,如果事件发生在过去 200 天内,它将显示 A、B、C、D、E、F 的列值 但是在同一个查询中,如果在过去 200 天(201 天及以后)内没有发生事件,它将只显示 A 列和 B 列中的值。

我当前的查询尝试使用 UNION 语句执行两个 select 语句。我试图在 UNION 之后为 SELECT 的 C、D、E 和 F 列执行 CASE 语句,但我无法让它工作。

当前查询显示所有列的所有值,无论它是否发生 < 或 > 200 天。

SELECT  te.columna,
     c.columnb,
     te.columnc,
     v.columnd,
    v.columne,
    v.columnf
 FROM table1 te, table2 c, table3 v
     WHERE te.columng_id=c.columng_id
    AND v.columne=te.columne
    AND te.columnc > sysdate-200
  UNION
     SELECT te.columna,
     c.columnb,
    te.columnc,
    v.columnd,
    v.columne,
    v.columnf
     FROM table1 te, table2 c, table3 v
    WHERE te.columng_id=c.columng_id
    AND v.columne=te.columne
    AND te.columnc < sysdate-200

Oracle -

中尝试 CASE
 SELECT  te.columna,
          c.columnb,
          CASE WHEN te.columnc >= SYSDATE -200
           THEN te.columnc
           ELSE NULL
        END columnc,
        CASE WHEN te.columnc >= SYSDATE -200
           THEN te.columnd
           ELSE NULL
        END columnd,
        CASE WHEN te.columnc >= SYSDATE -200
           THEN v.columne
           ELSE NULL
        END columne,
        CASE WHEN te.columnc >= SYSDATE -200
           THEN v.columnf
           END columnf
    FROM    table1 te, table2 c, table3 v
        WHERE te.columng_id=c.columng_id
    AND v.columne=te.columne