Oracle
文章平均质量分 65
dushihuiand1
这个作者很懒,什么都没留下…
展开
-
SQL分组取前三(包含并列)问题
撸SQL的人经常会碰到这种问题,分组取前几。这个问题也常常作为大厂的面试题之一。最常见的解决方法是使用x>(count(*))这种,也是大厂面试的标准答案之一。我们来推演一下:先看下表结构,我们来取每班前3名、前2名和第1名:标准解答是这样的:select * from ADU_TEST Twhere 3>(select count(*) from ADU_TEST where CLASS=T.CLASS and SCORE>T.SCORE)结果的确是我们想要原创 2020-07-08 18:31:31 · 14410 阅读 · 1 评论 -
ORA-24347聚合函数出现空列 出现原因及解决
最近做一个数据库开发的项目,写了一条100行左右的SQL,其中聚合函数用了好几层。每一层乃至最终的查询都没有问题,但是将这条SQL的结果写入临时表时,却报了ORA-24347: Warning of a NULL column in an aggregate function。依次检查了所有COUNT()、SUM()、MAX()函数,发现确实有聚合后出现NULL的情况,但是进行查询时,是不会报错的。解决方法:在聚合后有可能出现NULL的语句内使用NVL函数排空。如MAX(NVL(QTY,0)),字符原创 2020-06-30 12:31:09 · 5466 阅读 · 0 评论 -
修改Oracle表中字符、数值字段的长度
无数据:ALTERTABLE TABLENAME MODIFY COLNAME VARCHAR2(40); ALTER TABLE TABLENAME MODIFY COLNAME NUMBER(20);有数据:ALTER TABLE TABLENAME MODIFY(COLNAME VARCHAR2(40)); ALTER TA...原创 2020-04-03 17:10:01 · 2300 阅读 · 0 评论 -
关于归档日志空间被占满而导致数据库down掉的问题
一、发现问题:正常工作的软件忽然停止工作,sqlplus连接数据库报以下错误:ORA-12518: TNS:listener could not hand off client connection监听无法分配客户机连接重启数据库后报ORA-01034、ORA-27101二、解决思路:既然是报监听的错误,那么先看一下监听状态Lsnrctl statusIns原创 2017-06-09 15:56:49 · 624 阅读 · 0 评论 -
实现同环比的简单SQL
同环比,PL/SQL原创 2017-06-08 16:34:57 · 3585 阅读 · 0 评论 -
ROWNUM函数实现排名环比(一) 关于约束
之前介绍过UNION ALL实现销售同环比的方法,今天介绍一种使用JOIN连接查询实现同环比的方式。同时,我们引入ROWNUM伪列,实现销售排名的显示。在创建测试数据的时候,意外发现了一些关于约束的问题,所以,我准备在这篇文章中,先阐述一些关于Oracle约束,尤其是外键约束的事项。需要直接看ROWNUM实现排名环比的同仁,可以直接移步《ROWNUM函数实现排名环比(二)》再次声明,本原创 2017-06-10 14:57:15 · 548 阅读 · 0 评论 -
ROWNUM函数实现排名环比(二)
在上一篇文章中,我们建立了两张用于测试的表。如下:SQL> select * from m_store; ID NAME---------- ---------- 1001 shop1 1002 shop2 1003 shop3 1004 shop4 1005 shop5SQL> select *原创 2017-06-10 15:14:44 · 484 阅读 · 0 评论