BEGIN FOR L_RECORD IN (select RECORD_ID,CURR_PERIOD,PERIOD_START_DATE, (sysdate- PERIOD_START_DATE) diffTime,(P.PERIOD_END_DAY-P.PERIOD_BEGIN_DAY) periodDiffDay from CPS_PATIENT_PATH_RECORD t1 inner join cps_treat_period p on p.Period_Id=t1.Curr_Peri…
缘由 因为在某个复(bian)杂(tai)需求中用到了170+张表进行查询,而且表中的数据过多,查起来缓慢.只能给这些表添加索引.但是,连表名也是无法确定的(无力吐槽). 解决方法 使用游标遍历查询出来的符合条件的表名,通过拼接sql语句进行建立索引. 代码如下: --声明变量DECLARE     @tableName AS VARCHAR(50) = '',    @SqlStr AS VARCHAR(MAX) = ''; --声明游标DECLARE C_TableName CURSOR F…
把table2表的数据插入到table1中 insert   into   table1   select   *   from   table2…
应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create or replace type splitTable is table of varchar2(100); 2.创建函数fn_splitString(功能是将字符串分割成多条记录)--测试语句select * from table(fn_splitString('ernanyinv','nan'))…
恢复oracle中误删除drop掉的表   查看回收站中表 --需要在其所在用户下查询 回收站对象 select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin; 恢复表 SQL>flashback table test_drop to before drop;或SQL>flashback table "BIN$b+XkkO1RS5K10uKo9Bfmu…
问题描述: 公司的数据库表有时候会看到没有主键的,SQL中的每一张表都必须设有主键吗? 主键的作用: 1)保证实体的完整性: 2)加快数据库的操作速度: 3)在表中添加新记录时,数据库ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复: 4) 数据库ACCESS自动按主键值的顺序显示表中的记录.如果没有定义主键,则按输入记录的顺序显示表中的记录.   遵循原则: 建立主键应该遵循的原则 1)主键应当是对用户没有意义的.如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它…
转自:https://blog.csdn.net/changjizhi1212/article/details/81036509JAVA中循环遍历list有三种方式for循环.增强for循环(也就是常说的foreach循环).iterator遍历. 1.for循环遍历list ;i<list.size();i++){ if(list.get(i).equals("del")) list.remove(i); } 这种方式的问题在于,删除某个元素后,list的大小发生了变化,而你的…
ORACLE中如何找出大表分布在哪些数据文件中?   在ORACLE数据中,我们能否找出一个大表的段对象分布在哪些数据文件中呢? 答案是可以,我们可以用下面脚本来找出对应表的区.段分别位于哪些数据文件中 SET PAGESIZE 60; COL SEGMENT_TYPE FOR A12; COL FILE_NAME FOR A64; COL SEGMENT_NAME FOR A24; COL TABLESPACE_NAME FOR A24; COL SEGMENT_OWNER FOR A12;…
最近一直在做数据统计,在此过程中,遇到过好多种情况都是对一张表按照不同的条件进行多次统计,以前的做法是统计几次按照不同的条件left join 几次,虽然也能得到想要的结果,但是效率太低,反映在页面就是访问速度很慢. 今天在又一次遇到这种情况,要对一张表按照不同的条件进行七八次统计,不想在按照以前的思路来了,在网上一搜,果真可以通过case when语句进行统计,具体思路如下: 第一步:按照数据的共性,查询出来所有数据,包括要统计次数的那些字段 第二步:用把case when 包含在count函…
Oracle: SELECT count(*) FROM user_tables MSSQL: ) FROM sysobjects WHERE xtype='U' 这种方法可能会把dbo.dtproperties表给查出来,我在Oracle中查出66张表,在SQL SERVER中查出67张表,就是多了dbo.dtproperties这张表 我查询这张表,发现没有数据 SELECT * FROM dbo.dtproperties 不过个人认为多张表是正常的,这个不必介意  扩展 视图:SELECT…