
sql
独蛇求孤
这个作者很懒,什么都没留下…
展开
-
Oracle union all和order by一起使用
//有时候,我们会将进过排序(order by)后的结果集与 //其他经过排序的结果集进行合并(union or union all) //比如: select * from tb where length(id)=5 order by id desc union all select * from tb where length(id转载 2016-08-15 16:12:55 · 3316 阅读 · 0 评论 -
oracle 备注
1.多行字符串拼接select c.communityname from t03_community c where c.sid in(320,381,301,303);1 西溪花园2 同城印象3 李永超测试4 同城北区select wm_concat(c.communityname) from t03_community c where c.sid in(原创 2016-09-14 13:33:13 · 285 阅读 · 0 评论 -
wmsys.wm_concat 长度限制的问题
wmsys.wm_concat 和listagg 在函数实现字段合并的时候会有长度限制的问题,如:ORA-22813: 操作数值超出系统的限制或者ORA-06512: at "WMSYS.WM_CONCAT_IMPL", line 30网上查了一下方案,用sys_connect_by_path也没有解决后来国外有个文档说,可以用XML函数解决select XMLAGG(XMLELE原创 2017-01-03 10:57:41 · 19352 阅读 · 3 评论 -
ORACLE临时表总结
临时表概念 临时表就是用来暂时保存临时数据(亦或叫中间数据)的一个数据库对象,它和普通表有些类似,然而又有很大区别。它只能存储在临时表空间,而非用户的表空间。ORACLE临时表是会话或事务级别的,只对当前会话或事务可见。每个会话只能查看和修改自己的数据。 临时表语法 临时表分类 ORACLE临时表有两种类型:会转载 2017-02-06 09:33:14 · 207 阅读 · 0 评论 -
SQL性能优化十条经验
SQL性能优化十条经验转载 2017-02-06 10:08:54 · 239 阅读 · 0 评论 -
in与exist , not in与not exist 的区别
in和existsin 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:表A(小表),表B(大表)1:select * fr转载 2017-02-06 10:11:43 · 279 阅读 · 0 评论 -
wm_concat(列名)拼接超过4000后异常
函数 wm_concat(列名)该函数可以把列值以“,”号分隔起来,并显示成一行但是进行拼串的时候,返回是字符串类型,可能遇到拼串形成的结果集大于4000,这时候,系统会提示,超过系统限制。解决办法:XMLAGG(XMLELEMENT(E, 列名 || ',')).EXTRACT('//text()').getclobval()是先将列名组装成以“,”号分隔的xml,再转成原创 2017-02-07 09:29:39 · 3587 阅读 · 0 评论