sql – 为什么Oracle不是说GROUP BY表达式?
发布时间:2020-12-24 20:26:23 所属栏目:编程 来源:网络整理
导读:我正在实行行使以下前提从Oracle数据库表中检索数据 zip-code找到的全部条目都应凭证邮政编码降序举办分组. 按都市找到的条目应按字母次序举办分组. 全部由dealername找到的条目应按字母次序分组. 为了满意上述前提,我编写了如下查询 SELECT DISTINCT ba.uuid
我正在实行行使以下前提从Oracle数据库表中检索数据 > zip-code找到的全部条目都应凭证邮政编码降序举办分组. 为了满意上述前提,我编写了如下查询 SELECT DISTINCT ba.uuid AS uuid,COUNT(*) over() AS rowcount FROM basicaddress ba WHERE ba.postalcode='143456' OR ba.lastname LIKE '%143456%' OR ba.city LIKE '%143456%' GROUP BY CASE WHEN ba.postalcode='143456' THEN ba.postalcode END ORDER BY CASE WHEN ba.postalcode='143456' THEN ba.postalcode END DESC,CASE WHEN ba.lastname LIKE '%143456%' THEN ba.lastname END ASC,CASE WHEN ba.city LIKE '%143456%' THEN ba.city ELSE ba.postalcode END DESC 这个查询在MYSQL中运行正常,但在oracle中它说“不是GROUP BY表达式” 任何辅佐将不胜谢谢 办理要领这只是由于MySQL粉碎了SQL的逻辑.假设我们有表emp: id ename dept 1 mark 10 2 John 10 3 Mary 10 4 Jane 20 和查询: select dept,ename from emp group by dept; 你会获得什么? 它会回覆错误.无法猜出要给以什么. 正确的查询将是: select dept,max(ename) --the latest,alaphabeticaly from emp group by dept; 和 --all enames and groups select dept,ename from emp group by dept,ename; 矫正此部门后,您必需办理此题目 COUNT(*) over() AS rowcount 部门.在oracle,AFAIK中,您不能将说明函数与group by query殽杂行使. (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读