我可以在SQL中使用算术运算符吗?因为据我所知,算术运算符只允许在SELECT和WHERE子句中使用。但是下面的代码对我来说很有意义,但我知道它没有任何意义。有什么建议吗?
SELECT E.name
FROM Example E
GROUP BY E.name
HAVING COUNT(*) + 2 > 4
答案 0 :(得分:1)
如果您想要更复杂的算术表达式,可以使用子查询:
select
*
from
(
select
cnt = COUNT(*) + 2
, E.Name
from
Example E
group by
E.name
) as subQ
where
subQ.cnt > 4
答案 1 :(得分:1)
是的,您可以在HAVING子句中使用“算术运算符”。
HAVING子句中的表达式将被计算为布尔值。
注意:请确保优先顺序符合您的预期,例如
( COUNT(*) + 2 ) > 4
VS
COUNT(*) + ( 2 > 4 )
在您的示例中,实际上并不需要添加;表达式可以替换为逻辑等效的:
COUNT(*) > 2