常用SQL方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用SQL方法相关的知识,希望对你有一定的参考价值。
1. substr(字符串,截取开始位置,截取长度) //返回截取的字
eg:select substr(‘Hello World‘,-3,3) from dual; ----->rld
2.to_date(date,‘格式‘); //返回日期类型
eg: select to_date(‘2005-01-01 ‘,‘yyyy-MM-dd‘) from dual; ------>2005-01-01 00:00:00
3.instr(sourceString,destString,start,appearPosition) 查找到的字符串的位置
instr(‘源字符串‘ , ‘目标字符串‘ ,‘开始位置‘,‘第几次出现‘)
start代表查找的开始位置,这个参数可选的,默认为1,如果start的值为负数,则代表从右往左进行查找
appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选的, 默认为1
4.TRIM() 函数
trim只能去除单个字符,TRIM去除指定字符的前后空格
SELECT TRIM(leading|trailing|both string1 FROM string2) FROM dual;
--表示字符串string2去除前面|后面|前后面(leading|trailing|both)的字符string1,默认去除方式为both
LTRIM去掉左边空格,RTRIM,去掉右边空格或字符串
5.decode(表达式,条件一,返回一,条件二,返回二,...,default) 函数
表达式满足哪个条件,就返回哪个结果,都不满足时,返回default
6.索引
常用来 对于查询条件 较多的表 不适合更新操作较多的表 因为 跟新表的同时也需要更新索
--创建唯一的索引 create unique index index_name on table_name(column_name);
7.游标:
游标原理: 逐行处理查询结果,以编程的方式访问数据。用游标提取一行数据 保存在游标中,一次处理一行
declare --声明游标 CURSOR C_PCINFO IS SELECT TO_CHAR(SUBSTR(f.forminfo, instr(f.FORMINFO,‘<date>‘,1)+6, (instr(f.FORMINFO,‘</date>‘,1) -instr(f.FORMINFO,‘<date>‘,1))-6)) AS DATESTR, TO_CHAR(SUBSTR(f.forminfo, instr(f.FORMINFO,‘<areaCode>‘,1)+10, (instr(f.FORMINFO,‘</areaCode>‘,1) - instr(f.FORMINFO,‘<areaCode>‘,1))-10)) AS AREACODE , f.PROCESSID AS PID FROM BPMUSER2.FORM_MASTER_INFO f WHERE f.FORMID=‘GL_PC‘ AND f.CREATETIME BETWEEN SYSDATE-365 AND SYSDATE+1; C_ROW C_PCINFO%ROWTYPE; --声明变量类型为行类型 c_count number:=0; BEGIN FOR C_ROW IN C_PCINFO LOOP --打开游标 并开始循环 IF C_ROW.DATESTR IS NOT NULL AND C_ROW.AREACODE IS NOT NULL AND C_ROW.PID IS NOT NULL THEN INSERT INTO BPMUSER2.PC_DATE_INFO(ID,PROCESSID,USERDATE,SCOPEID) VALUES(SEQ_PC_DATE_INFO.nextval,C_ROW.PID,to_date(C_ROW.DATESTR,‘yyyy-mm-dd‘),C_ROW.AREACODE); c_count:=c_count+1; if c_count>1000 then --每次提交100条 commit; c_count:=0; end if; END IF; END LOOP; COMMIT; END;
8.序列:
常用来做自增主键取值用:(SEQ_PC_DATE_INFO .nextval)
CREATE SEQUENCE "BPMUSER"."SEQ_PC_DATE_INFO" MINVALUE 1 MAXVALUE 9999999999 INCREMENT BY 1 START WITH 60074 NOCACHE NOORDER NOCYCLE
以上是关于常用SQL方法的主要内容,如果未能解决你的问题,请参考以下文章