【问题标题】:Is it possible to replace the result of the SQL Select query?是否可以替换 SQL Select 查询的结果?
【发布时间】:2015-07-06 09:52:38
【问题描述】:

我正在编写一个选择查询,是否可以替换从选择语句中显示的数据。例如,我的选择查询的结果看起来像

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

【问题讨论】:

  • 您可以执行以下操作:选择名称、日期、日期 = getdate() 时的大小写,然后总计 else '' end from
  • 当 date = ... 时使用 select CASE 然后总计 else 'N/A' end...
  • @Vignesh 向我们展示查询。
  • select ..., case when trunc(sysdate) = Date then date else null end from table;

标签: sql oracle


【解决方案1】:

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

  • 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;

【讨论】:

  • 案例选项工作正常。另一个困难是如何将其扩展到多个列。我尝试使用嵌套案例并最终出现错误
  • @Vignesh 我看不到错误,我看不到你的查询,所以我不知道你的意思。
猜你喜欢
  • 1970-01-01
  • 2010-11-11
  • 2015-02-27
  • 2016-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
相关资源
最近更新 更多