自己先列出个列表,where后面可跟的关键字是哪些?
我先以你拿出的为例,谈谈:
总体的轮廓是:
select * from table
where 条件=?
group by 分组字段
order by 排序字段;
exists用法跟in类似,用于做条件限制的,如果要用它,它只能放在条件部分
group by是用来分组的,它放在where条件之后
order by 排序用的,放到最后。
我先以你拿出的为例,谈谈:
总体的轮廓是:
select * from table
where 条件=?
group by 分组字段
order by 排序字段;
exists用法跟in类似,用于做条件限制的,如果要用它,它只能放在条件部分
group by是用来分组的,它放在where条件之后
order by 排序用的,放到最后。
select--from--where--group by--having--order by
那要是这样写exist(select 1 from dual --) group by 2 and having count(1)>=5这样写,是先执行exist,还是先执行group by这些语句之后再判断
你语法错了 rownum>=1 没结果吧?
having 是依赖于group by的,所以它放在group by 后面,跟group by 算是一个整体,放在order by 前面
你就记住,SQL的执行顺序是:先where 后group by 最后order by 就行。学习慢慢来,都有个过程。祝你早日学成。
先谢谢你了!