![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
my--dream
这个作者很懒,什么都没留下…
展开
-
oracle和mysql解决行转列
-- 查询部门为20的员工列表SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO = '20' ;2.使用 listagg() WITHIN GROUP () 将多行合并成一行SELECT T .DEPTNO, listagg (T .ENAME, ',') WITHIN GROUP (ORDER ...原创 2019-12-04 18:54:45 · 325 阅读 · 0 评论 -
数据库切分——分库,分表
第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库:可以降低单台机器的负载,同时最大限度的降低了宕机造成的损失;负载均衡策略:可以降低单台机器的访问负载,降低宕机...转载 2018-03-16 15:52:27 · 437 阅读 · 0 评论 -
ROW_NUMBER() OVER()、RANK() OVER()、DENSE_RANK() OVER()的使用
工作中需要用到对多列分组并排序后的组内数据。这时候就需要用ROW_NUMBER() OVER()啦。语法格式:row_number() over(partition by 分组列 order by 排序列 desc)注意:over()里头的分组以及排序的执行晚于sql中 where 、group by、 order by 的执行。SELECT l.purchase_order,l...转载 2019-02-16 15:57:54 · 534 阅读 · 0 评论 -
利用存储过程重置序列
工作中用到订单号需要每天从1累加。通过序列提供订单号,每天通过存储过程来重置改序列从1开始创建序列:create sequence Order_SEQIDminvalue 0maxvalue 9999start with 1increment by 1cache 20;重置的存储过程:create or replace procedure seq_reset(v_seqn...原创 2019-02-16 16:07:59 · 404 阅读 · 0 评论