Oracle中where子句和having子句中的区别
答案:2 悬赏:30 手机版
解决时间 2021-01-03 16:29
- 提问者网友:辞取
- 2021-01-03 10:52
Oracle中where子句和having子句中的区别
最佳答案
- 五星知识达人网友:舍身薄凉客
- 2021-01-03 11:05
where 对 表中已有的字段数据进行筛选;
having 对聚合函数(count,sum,max,avg等)产生的数据进行筛选;
having 对聚合函数(count,sum,max,avg等)产生的数据进行筛选;
全部回答
- 1楼网友:渡鹤影
- 2021-01-03 11:46
where 是先决条件,having是分组后的后决条件。
如果你写了一个where a=1 group by b,那么该条件意思是对所有a=1的b值进行分组。也就是先where再分组。
having是后决条件,比如在group by的时候执行了一个sum语句,sum后值有1,2,3,4,5,如果你只想取sum的值>3的,也就是说在sum之前,你并不知道哪些sum的值可以大于3,sum后你才能知道。
如果按照一般的写法,那么就是在外面再套一层sql,那么这就是having了,他可以不用套这层sql了。可以直接having 字段>3,也就是having的主要作用是先分组,分组后的值,可以在having中进行判断。
where直接做不到这点,如果用where来做,那么只能是在外面套一层sql,然后用where。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯