Oracle-SQL-查询操作

1、基本查询

   
   select * from emp
   select ename,empno from emp
 
   使用*和详细列出列名的查询结果是一样的,但是,在程序中采用列出列名的方式可以提高程序的可读性。

2、指定条件的查询

   
select * from emp where  ename='SIMTH'
   where用于指定查询条件,通过and或者or可以指定多个条件

3、连接列值

   
select ename||' is a '||job from emp 
   连接通过concat函数实现,在oracle中可以使用||代替该函数

4、使用条件逻辑

   case when ... then ... else ... end

5、限制返回的行数

   
select * from emp where rownum<5 order by empno asc;
select * from (select t.*,rownum rn from emp t order by t.empno asc) t1 where t1.rn<5 and t1.rn>3;
   

6、随机取出n条记录

    
select * from (select * from emp order by dbms_random.value()) where rownum<5  ;  
    使用DBMS_RANDOM包中的内置函数VALUE,结合order by和rownum实现

7、查找空值

   
select * from emp where comm is  null; 
     必须使用is null进行处理

8、替换空值

   
select coalesce(comm,deptno,1) from emp; 
    coalesce()函数包含一个或多个参数,该函数返回列表中的第一个非空值。

9、截取子串

   
select empno,substr(empno,length(empno)-2) from emp order by substr(empno,length(empno)-2) asc  
    substr(string,start,length)从指定位置截取指定长度的字符串

10、字符/字符串的替换

   通过translate或者replace替换掉数字或字符部分,然后排序
   translate(string,from,to)  字符级别的替换
                             如果to的长度小于from则在from中存在,在to中不存在的将被直接删掉;
    replace(string,from ,to)   字符串级别的替换
   
select ename,translate(ename,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','00000000000000000000000000') from emp; 
 

猜你喜欢

转载自768992698.iteye.com/blog/2258886