数据库
一个探索者
这个作者很懒,什么都没留下…
展开
-
Left Join 比Join快的情况浅析
从原理上来讲Join在逻辑运算上比Left Join会少但有些业务情况下为什么反而会慢? 如下Sql语句: select sonACD.ID from MN_ACD_DETAIL as sonACD left join MN_ACD_DETAIL as inbound on sonACD.ANI=inbound.AN...原创 2019-12-15 15:43:16 · 2490 阅读 · 0 评论 -
Linq的一个小技巧
** Linq的一个小技巧 ** 环境:Oracle获Sql Server 在NHibernate下想要通过Find(t=>t.list.contains(t.phid))查询语句报错 原因:list的长度大于8k造成1个phid转为字符为17个字符当超过8k/17大约470个时就会报错。 解决方案;后台可以把list进行拆分,大约300个一组进行查询然后将结果再进行组装 ...原创 2019-12-01 20:15:16 · 135 阅读 · 0 评论 -
根据某个字段获取第n行的数据
不多说直接上 oracle写法 select * from( select rownum as num,a.* from( select * from table order by insert_dt desc ) a where rownum<n+1 ) where num=n sql写法 select * from( select row_number() over(order by t...原创 2019-06-12 23:32:11 · 419 阅读 · 0 评论 -
统计从本年开始往前12个月的数据
Oracle写法 select * from( with t1 as( select add_months(sysdate,-level+1) as t_date from dual connect by level<=12 ), t2 as( select money,bill_dt from table ) select tochar(t1.t_date,‘YYYY_MM’) month...原创 2019-06-17 19:24:25 · 1076 阅读 · 0 评论 -
数据库获取本年所有月份
** Oracle写法 select to_char(add_months(sysdate,-(select to_char(trunc(sysdate),‘MM’)from dual )+level ),‘YYYY_MM’) as t_date from dual connect by level<=12 ** SqlServer写法 select convert(varchar(7),...原创 2019-06-17 19:38:44 · 1550 阅读 · 0 评论 -
Oracle数据库某张表恢复指定时间节点
当操作oracle某张表失误的时候可以通过如下两步解决: 第一步 Alter Table table_name enable row movement ** 第二步 flashback Table table_name to timestamp to_timestamp(‘2019-06-05 19:30:00’,‘yyyy-mm-dd hh24:mi:ss’); ** ...原创 2019-06-17 19:50:11 · 693 阅读 · 0 评论 -
hibernate触发器碰到的坑
** insert触发器更新字段值 oracle: create or replace trigger cs before insert on tablename fro each row //oralce是对每一行影响有;new,:old when (new.cloumn>0)//这里的new没: begin select cloumn_0 :new.cloumn_0 from tabl...原创 2019-10-10 19:28:29 · 399 阅读 · 0 评论