
sql
JokerSoulClub
这个作者很懒,什么都没留下…
展开
-
记录一下oracle字段比较的一个坑
首先where nvl(null,field)=field等同于where field=field最后,等同于where field is not null原创 2022-03-25 11:05:06 · 516 阅读 · 0 评论 -
mysql8实现oracle的connect by order by实现深度优先的树排序
with recursive tab1 as (--此处是定义了一个临时sql快,旨在将原始表里按照排序字段排好后,连接@rownum固定下来with temp_b as (select a.* from (select * from etc_test order by ordernum asc) a,(SELECT @rownum:=0) b)--以下是连接起始数据和union all连接体select t0.id,t0.parent_id, 1 lv, @rownum := @rownum +原创 2021-11-17 14:39:15 · 1124 阅读 · 0 评论 -
一个转换polygon的st_astext为标准json的sql解析
先上代码select replace(replace(replace(replace(replace(replace(replace(replace(replace('('||trim(substr(sde.st_astext(t.shape),instr(sde.st_astext(t.shape),'(')))||')','((((','((('),'))))',')))'),', ','`'),'( ','<'),'`','],['),' ',','),'(','['),'<','[')原创 2021-07-02 14:17:59 · 888 阅读 · 1 评论 -
oracle 计算时间间隔月份数(不是时间意义上的月,而是中间间隔了几个yyyy-mm格式的月)
解决的不是时间意义上的月,而是中间间隔了几个yyyy-mm格式的月时间意义上的直接date减法/30即可(虽然不严谨,实际每月不是30天)本质上而言是12进制减法例如2021-01-31 - 2022-09-21 = -21 (包含头尾)直接上代码CREATE OR REPLACE FUNCTION calc_month(d1 IN date,d2 in date)RETURN VARCHAR2IScountMonth number;y1 number;y2 number;m1 nu原创 2021-06-17 18:16:10 · 469 阅读 · 0 评论 -
Oracle(+)使用的技巧
记录一个Oracle(+)使用的技巧oracle(+) 表示外连接简写 table a,table b where a.a=b.a(+)等价于table a left join table b on a.a=a.b重点select a.*,b.* from table a,table b where a.id=b.id(+) and a.field1=1 and b.field2=2以上sql等价于下面的sqlselect * from (select a.*,b.* from table a,原创 2021-02-03 18:13:08 · 373 阅读 · 0 评论