
SQL
文章平均质量分 51
数据库sql
我有一只小神兽
这个作者很懒,什么都没留下…
展开
-
查询日期查询 SQL
select t1.sum_data,t1.DAY_ID from ( SELECT '0' as sum_data,(@s:=@s+1) as a, DATE_FORMAT(DATE(DATE_SUB(CURRENT_DATE,INTERVAL @s MONTH)),'%Y-%m') AS DAY_ID FROM mysql.help_topic,(SELECT @s := - 1) temp .原创 2021-07-08 13:59:53 · 222 阅读 · 0 评论 -
SQL优化
IN 操作符用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的,从sql执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别:sql试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功,但对于含有分组统计等方面的SQL就不能转换了。推荐方案:在业务密集的SQL当中尽量不原创 2021-01-18 17:44:05 · 139 阅读 · 0 评论 -
oracle递归实现
建立测试数据表:createtablelc_02asselect'1'id,'0'pid,'钢铁'name,14numfromdualunionallselect'2'id,'1'pid,'冶钢'name,4numfromdualunionallselect'3'id,'1'pid,'轧钢'name,6numfromdualunionallselect'4'id,'1'pid,'焊管'name,4...原创 2021-01-11 18:20:08 · 697 阅读 · 0 评论 -
oracle in长度限制的解决方法
oracle in长度限制的解决方法,将列转为行 但是字符串又会有长度限制,所以参考方法二方法一:SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,LEVEL) AS STR FROM DUAL CONNECT BY LEVEL <= LENGTH('17,20,23')-LENGTH(REGEXP_REPLACE('17,20,23',',','')) + 1这里还有一个函数:REGEXP_REPLACEREGEXP_REPLACE(source_原创 2021-01-11 18:12:20 · 2663 阅读 · 4 评论