【发布时间】:2016-12-13 14:16:38
【问题描述】:
我正在尝试构建一个可以由监控平台运行的相当直接的查询。出于这个问题的目的,如果满足警报条件,我需要我的查询返回 1,如果一切正常,我需要返回 0。这是我有正确工作的查询的 sn-p:
select case when count(*)<1700
THEN '1'
ELSE '0'
END CASE
FROM SomeTable
WHERE date_value= '11-DEC-2015';
但是,我不想在比较中硬编码 1700 值,而是想做一个嵌套查询以从同一数据库中的另一个表中提取值。当我像这样重写查询时......:
SELECT case when count(*)<(select count(*) from Another_table)
THEN '1'
ELSE '0'
END CASE
FROM SomeTable
WHERE date_value= '11-DEC-2015';
...它在我的嵌套查询开始时返回以下内容:
ORA-00937: 不是单组群函数 00937. 00000 - “不是单组群功能”
我知道可能有更好的方法来进行这种类型的比较,或者可能是我忽略的一些简单的方法,但我对 Oracle SQL 还是很陌生,并且非常感谢任何关于如何进行这种相同类型的比较的建议嵌套查询案例表达式。如果我用同样返回单个整数结果的嵌套查询替换整数值,为什么会出现上述错误?
提前感谢您的任何建议!
【问题讨论】:
-
大小写表达式,而不是大小写陈述。
-
好收获;将标题更新为 Case 表达式而不是语句。