帮助编写子查询并分配结果以触发真或假结果

时间:2011-06-23 19:59:00

标签: oracle subquery

需要一些关于此查询的帮助。到目前为止,我已经根据前几天的数据返回了一个计数。

我现在最终要做的是创建一个查询,它基本上告诉我count(*)= Xn值,然后查询是有效的,否则没有数据集。

如果没有结果,那就好了。

这是我的疑问:

    SQL> select count(*) from in_source where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1;

  COUNT(*)
----------
  500

因此,基本上如果count(*)= 500,则此查询为1(false)或0(无结果)。我认为这需要一个子查询?

有人可以帮我调整一下吗?谢谢。

2 个答案:

答案 0 :(得分:1)

不确定这是否是您要找的,但我试一试:

select 1 from dual
  where 500=(select count(*) from in_source
               where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1);

答案 1 :(得分:1)

不要真正理解你所追求的是什么,但希望其中一个能够奏效......

如果你想得到如果count(*)= 500则返回1,否则返回0然后试试这个:

select case when count(*) = 500 then 1 else 0 end result
from in_source
where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1;

如果你试图获得if count(*)= 500然后返回1,否则不返回任何行试试这个:

select 1 result
from in_source
where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1
having count(*) = 500;