为同一查询中的不同列指定不同的条件

时间:2015-02-16 07:11:09

标签: sql oracle-sqldeveloper

如何为同一个查询中的不同列指定不同的条件?

根据我的理解,条件在应用于整个表的where子句中指定。但是,如果我想要单个列的单个条件,并且有多个列具有相同字段的不同条件,我该如何指定条件。

我的情况,
我有一个表格,例如10列。
我必须在某些日期之间过滤每个列的条件。即,
日期01/01/1990和01/10/1990之间的A1列之和 日期01/01/1992和01/10/1992之间的A2列之和 和其他类似的列。
所有这些我必须进行单一查询。
此日期也可在表格中找到 我可以使用sum(A1)(to_date之间的分区(' 01/01 / 1990')和to_date(' 01/10 / 1990'))?
如果是的话,我无法在分区之间使用。我得到错误"错过右括号"。
请解释。
提前谢谢!

1 个答案:

答案 0 :(得分:2)

类似的东西: -

select 
a.col1,
sum (case when a.YourDateColumn between to_date ('01/01/1900', 'DD/MM/YYYY') and to_date ('01/10/1990', 'DD/MM/YYYY') then a.a1 else 0 end) as a1total,
sum (case when a.YourDateColumn between to_date ('01/01/1992', 'DD/MM/YYYY') and to_date ('01/10/1992', 'DD/MM/YYYY') then a.a2 else 0 end) as a2total
from A 
group by a.col1