oracle_增删改查

/*

*/

select * from emp where rownum<=2;    //查看emp中的前2条记录(mysql使用limit 0,1)

select * from ( select rownum as rn, t.* from emp t where rownum<=2 ) where rn=2 ; //查第二条记录

SELECT NEWID() AS ID FROM DUAL;   //生成唯一标识

 INSERT INTO CULTUREMEDIUMUSE
    	 		(CULTUREMEDIUMUSEID,
    	 		CULTUREMEDIUMUSENAME,
    	 		CULTUREMEDIUMUSEINVSOURCE,
    	 		CULTUREMEDIUMUSEBATCHNO,
    	 		FOLDERNO,
    	 		ORDTASKID)
    	 SELECT NEWID(),
    	 		lc.CULTUREMEDIUMUSENAME, 
    	 		lc.CULTUREMEDIUMUSEINVSOURCE,
    	 		lc.CULTUREMEDIUMUSEBATCHNO,
    	 		#{folderno},
    	 		#{ordtaskid}
    	 		FROM LIMS_CULTUREMEDIUMUSE lc 
    	 		WHERE lc.FOLDERNO = #{oldfolderno} AND lc.ORDTASKID = #{oldordtaskid}  //查询结果插入


select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual;   //sysdate转字符串
select to_date('2019-11-7' || ' ' || (select to_char(sysdate,'hh24:mi:ss') from dual),'yyyy-mm-dd hh24:mi:ss') from dual   //拼接字符串,取系统时间


<!-- decode(条件1,值1,返回值1,值2,返回值2,'其它')类似于mysql,if()函数  -->
<!-- substr(FOLDERNO,开始位置,截取长度)  -->
<!-- to_number()转数值函数  -->
SELECT decode(									            
              substr(FOLDERNO,-1),'F',substr(FOLDERNO,5,length(folderno)-5),
			  substr(folderno, - 5)
			 ) AS NO
FROM LIMS_FOLDERS FOLDERS
WHERE decode(									 
             substr(FOLDERNO,-1),'F',substr(FOLDERNO,0,length(folderno)-6),
			 substr(folderno,0,length(folderno) - 5)
			) = 'A19S'
and to_number(
	  decode(																 
             substr(FOLDERNO,-1),'F',substr(FOLDERNO,5,length(FOLDERNO)-5),
			 substr(folderno,length(folderno) - 4, length(folderno))
            )
			) > (SELECT smin FROM BASE_SEQCODE WHERE snam = 'LIMS_FOLDERSA19S') 
order by to_number(
	  decode(																	 
             substr(FOLDERNO,-1),'F',substr(FOLDERNO,5,length(FOLDERNO)-5),
			 substr(FOLDERNO,-5)
			) asc
																


SELECT instr('syranmo','s') FROM dual; -- 返回 1   //如果String2在String1中没有找到,instr函数返回0.
SELECT instr('syranmo','ra') FROM dual;  -- 返回 3	 //查找'ra'在'syranmo'位置	


<!-- 动态生成编码 -->
select decode(sign(ASCII(substr(max(lo.ORDNO),-1))-ASCII('A')),
			  -1,max(lo.ORDNO) || 'A',
			  substr(max(lo.ORDNO),0,length(max(lo.ORDNO))-1) || CHR(ASCII(substr(max(lo.ORDNO),-1))+1)
			 )	
from LIMS_ORDERS lo 	




<!-- 动态生成业务编码,随年份增加 -->
SELECT  ( 	'FJSQ'   
            	  	|| 
            	  	(	
            	  		SELECT TO_NUMBER(to_char(sysdate, 'yyyy') || NVL(MIN(NO),'00000'))+1
            	 		FROM(  
	            	 			SELECT MAX(NO) AS NO 
	               				FROM( 
					                    SELECT row_.*, ROWNUM rn_
					                    FROM( 
						                        SELECT DISTINCT SUBSTR(reexamplannum,9,length(reexamplannum)) AS NO
												FROM LIMS_REEXAMAPPLICATION
												WHERE SUBSTR(reexamplannum,5,4) = (SELECT TO_CHAR(sysdate, 'yyyy') FROM dual)
												ORDER BY TO_NUMBER	(SUBSTR(reexamplannum,9,length(reexamplannum))) ASC
					                      	)row_                   
			                  		) A
			                	GROUP BY NO - rn_
		             	 	) B
		            )
		    	) AS reexamplannum
		FROM dual
		WHERE '00001' = (SELECT SUBSTR(min(reexamplannum),-5) FROM LIMS_REEXAMAPPLICATION)
		
		UNION 

		SELECT ('FJSQ' || (SELECT TO_CHAR(sysdate, 'yyyy') FROM dual) || '00001') AS reexamplannum FROM dual
		WHERE '00001' != (SELECT SUBSTR(min(reexamplannum),-5) FROM LIMS_REEXAMAPPLICATION)


//参考致谢:https://blog.csdn.net/Fupengyao/article/details/52778565?locationNum=7&fps=1
//①其9代表:如果存在数字则显示数字,不存在则显示空格
  ②其0代表:如果存在数字则显示数字,不存在则显示0,即占位符。
 ③其FM代表:删除如果是因9带来的空格,则删除之
select to_char(lc.discount,'fm9999990.9999') from dual;


//分组合并
select listagg(bc.corpdesc, ',') WITHIN GROUP (ORDER BY bc.corpdesc)  
from LIMS_FOLDERSERVGRP lfs
left join base_corp bc on bc.corpcode = lfs.dept
where lfs.foldersid = T1.foldersid
and lfs.MAINSERVGRP != 1 
group by lfs.foldersid


//参考致谢:https://www.cnblogs.com/kylie-go/p/10238096.html
select *,row_number() over(order by Score desc) as Sequence from Student	

								

/*

基本操作

*/

//表添加一列
alter table base_user add USERSIGNPASS VARCHAR2(120); comment on column base_user.USERSIGNPASS is '签名密码';
commit;   

//列重命名
alter table base_user rename column aa1 to USERSEX;
commit;
发布了129 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/zs_life/article/details/102330373
今日推荐