如何解决在 ORACLE
我有三个表:temp、product 和 Feed。 我会举例说明:
select ri.id from temp ri
inner join product i on ri.id = to_char(i.val)
inner join Feed f on f.product_id = i.product_id
where i.status = 'Finished'
and f.type = 'Type'
group by f.Feed_id,ri.id
having COUNT(f.status = 'SUCCESS') < 1;
所以我尝试从 temp
获取所有具有 f.type = 'Type'
的 ID。问题是,对于一个 Feed.Feed_id
可以是多行,因为我可以重新触发它 5 次,假设它崩溃了 4 次,但在第 5 次尝试时它是 SUCCESS
,所以对于一个 Feed.Feed_id
,我会有 5 行,只有一行带有 f.status = SUCCESS
。
我在此查询中收到的错误是 ORA-00907: missing right parenthesis
,这让我很困惑。
Feed table
:
Feed_id
、status
、type
我对所有 Feed_id
都没有兴趣,status='SUCCESS'
type='TYPE'
都没有解决方法
您不能在 Oracle 中使用 COUNT
布尔表达式,您可以使用 const ulList = document.getElementById("ul-le");
var nodes = Array.from( ulList.children );
console.log(nodes[nodes.length - 1]);
表达式代替,例如
<ul id="ul-le">
<li class="ball" data-rollid="3928081">
<span class="red">2</span>
</li>
<li class="ball" data-rollid="3928082">
<span class="red">5</span>
</li>
</ul>
当条件为假时,此表达式返回 CASE
,因此它只会计算条件为真的行(因为表达式的 HAVING COUNT(CASE WHEN f.status = 'SUCCESS' THEN 1 END) < 1
忽略 NULL
值)。
还要注意(正如@GordonLinoff 在评论中指出的那样),由于 COUNT
不能返回负数,因此简单地将结果与 0 进行比较会更清晰(并且效率更高),而不是小于 1:
NULL
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。