是否可以替换SQL Select查询的结果?

时间:2015-07-06 09:52:39

标签: sql oracle

我正在编写一个select查询,是否可以替换select语句中显示的数据。例如,我的选择查询的结果类似于

Name    Date    Total
----    ----    ----
No1    6/30/15    20
No2    6/29/15    35
No3    6/20/15    40
No4    6/30/15    65
No5    6/27/15    25  

我想根据日期进行计算,并用NULL或N / A替换单元格中的整个数据。对于上表,如果日期是今天的日期,则所有字段应保持不变,否则它应更新为空白。

Name    Date    Total
----    ----    ----
No1    6/30/15    20
No2    6/29/15 
No3    6/20/15
No4    6/30/15    65
No5    6/27/15

1 个答案:

答案 0 :(得分:3)

你可以使用以下任何一种:

  • DECODE
  • CASE

使用 DECODE (看起来更短):

SELECT name,
  DATE,
  DECODE(DATE, TRUNC(SYSDATE), total, NULL) AS "Total"
FROM table_name;

使用 CASE (看起来详细):

SELECT name,
  DATE,
  CASE
    WHEN DATE = TRUNC(SYSDATE)
    THEN total
    ELSE NULL
  END AS "Total"
FROM table_name;