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

发布于 2024-11-16 16:15:05 字数 412 浏览 1 评论 0原文

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

我现在最终想做的是创建一个查询,它基本上告诉我如果 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(假)或 0(无结果)。我想这需要一个子查询?

有人可以帮我调整这个吗?谢谢。

Need some help on this query. So far I have it returning a count based on data from couple days previous.

What I am ultimately trying to do now is create a query that basically tells me if the count(*)=Xn value, then query is valid else no data set.

Its ok if I get no results.

Here's my query:

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

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

So, basically if count(*)=500 then this query is 1 (false) or 0 (no results). I'm thinking this would require a sub query?

Can someone help me tweak this? Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜司空 2024-11-23 16:15:05

不太明白你在做什么,但希望其中之一能起作用..

如果你试图得到 if count(*) = 500 return a 1 else return a 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;

Don't really understand what you are after, but hopefully one of these will work..

If you are trying to get if count(*) = 500 return a 1 else return a 0 then try this:

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 you are trying to get if count(*) = 500 then return a 1 else don't return any rows try this:

select 1 result
from in_source
where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1
having count(*) = 500;
坚持沉默 2024-11-23 16:15:05

不确定这是否是您正在寻找的,但我尝试一下:

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

Not sure if this is what you are looking for, but I give it a try:

select 1 from dual
  where 500=(select count(*) from in_source
               where to_date(year||'/'||month||'/'||day, 'YYYY/MM/DD') >= trunc(sysdate) - 1);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文