zoukankan      html  css  js  c++  java
  • 几个小知识点

    --取随机的数据
    select empno,ename from ( select a.*,rownum rn from emp a order by dbms_random.value ) where rn<2;
    
    --coalesce 将空转为0  --推荐用此方法 返回第一个不为空的表达式,如果都为空则返回空值。
    select a.*,coalesce(comm,0)comm from emp a where empno=7369 ;  
    select coalesce(null,3+5,4+6) value from dual; 
    select a.*,nvl(comm,0)comm from emp a where empno=7369 ;  
    
    
    --like查询下划线开头的字符
    update emp set ename='_'||job where empno=7788;
    
    select * from emp where ename like '\_%' escape '';
    
    --从右向左截取
    select a.*,substr(job,-2) from emp a where empno=7369;    --从右边第一位开始,截取2 位
    select a.*,substr(job,-2,1) from emp a where empno=7369;  --从右边第二位开始,截取 1位
    
    --order by 中用 case when 
    select empno,sal,case when sal>=3000 then 1 else 2 end as rn from emp order by 3 ,2 desc; 
    select empno,sal  from emp order by case when sal>=3000 then 1 else 2 end,2 desc; 
    
    
    --translate 函数  translate(字段,from_string,to_string) 如果 from_string 比to_string 长
    -- from_string中有而 to_string没有的,这些没有的字符将从字段中被替换为空,也就是删除的意思,9i,10g 11g 都适用
    select prid,praddr,translate(praddr,'a 0123456789','a') from prov; 
    
    select translate('afdfadf你好','1你好','1') from dual; 
    
    
    -----------------------------------------------------------------------------------------------------------------------
    --正则表达式用法示例
    -- regexp_replace  如果字符中既有数字也有汉字,可以用如下方式提取数字和汉字
    
    --提取汉字
    select prid,praddr,regexp_replace(praddr,'[0-9]')rn from prov where prid=100252;
    
    --提取数字
    select prid,praddr,regexp_replace(praddr,'[^0-9]')rn from prov where prid=100252;
    
    
    --regexp_like  查找 ename 中有 A 字符的
    select * from emp where regexp_like(ename,'A');
    select * from emp where regexp_like(ename,'a','i');  --i 不区分大小写 ,c 区分大小写,默认为区分大小写
    
    --查找 以A开头的
    select * from emp where regexp_like(ename,'^A');
    
    --查找 以 N 结尾的
    select * from emp where regexp_like(ename,'N$');
    
    --查找包含下划线的
    select * from emp where regexp_like(ename,'_');
    
    ---regexp_substr
    select a.*,regexp_substr(ename,'A',1,1,'i')rn from emp a where empno=7499; 
    
     --以一个或以上逗号开头,从第一位开始,第一次出现的位置,下面截取左边的 34 
    SELECT REGEXP_SUBSTR('34,56,-23','[^,]+',1,1,'i') AS STR FROM DUAL; 
    
    
    --分段截取数字
    SELECT REGEXP_SUBSTR('34,56,-23', '[^,]+', 1, LEVEL, 'i') AS STR
      FROM DUAL  
    CONNECT BY LEVEL <=  
               LENGTH('34,56,-23') - LENGTH(REGEXP_REPLACE('34,56,-23', ',', ''))+1;  
    
    
    
    --regexp_instr 某个字符串出现的位置
    Select instr('avdsdabasdab','a',1,2)rn FROM DUAL; 
    select regexp_instr('avdsdabasdab','a',1,3)rn  from dual; --从第一位开始,查找a第三次出现的位置
    
    --regexp_count  某个字符串出现的次数
    select regexp_count ('The pro-niece was born today, so exciting!', 'o', 23, 'i')rn from dual;
    
    
    ---------------------------------------------------------------------------------------------------------------------------------------------------
    
    --闪回版本查询及 闪回事物查询
    select * from emp; 
    update scott.emp set comm=1000
    
    --查所有时间闪回版本查询
    select versions_starttime, versions_endtime, versions_xid, 
    versions_operation, empno 
    from scott.emp versions between timestamp minvalue and maxvalue
    order by VERSIONS_STARTTIME
    
    --按时间段查
    select empno, versions_starttime, versions_endtime,versions_xid
    from scott.emp versions
    between timestamp 
    to_date('2015-03-23 16:15:00','yyyy-mm-dd hh24:mi:ss')
    and to_date('2015-03-23 16:19:00','yyyy-mm-dd hh24:mi:ss')
    
    --闪回事物查询
    alter database add supplemental log data;  --启用最小补充日志
    select *  from flashback_transaction_query  where table_owner='SCOTT' and xid='08000D0014030000'
  • 相关阅读:
    iOS 自带系统语音识别
    对iOS10新增Api的详细探究
    iOS 技术前瞻
    iOS 之 byte NSString NSData类型转换
    iOS 文本属性
    基本力
    xamarin mac 基础知识 之 界面
    xamarin mac 之 基础知识
    xamarin mac 之 资料
    I方法 thinkphp
  • 原文地址:https://www.cnblogs.com/tianmingt/p/4366039.html
Copyright © 2011-2022 走看看