oralce where字句的用法

?       如何显示工资高于3000的员工

   select * from emp where sal>3000;

?       如何查找1982.1.1后入职的员工

select * from emp where to_char(hiredate,’yyyy-mm-dd’)>’1982--01-01’;

?       查询1980年入职的员工

    select * from emp where to_char(hiredate,’yyyy’)=’1980’;

?       如何显示工资在2000到2500的员工情况

select * from emp where sal>=2000 and sal<=2500;

select * from emp where sal between 2000 and 2500;

如何使用like操作法(模糊查询)

%:表示任意0到多个字符         _:表示任意单个字符

?       如何显示首字符为S的员工姓名和工资

SQL> select ename,sal from emp where ename like 'S%';

?       如何显示第三个字符为大写O的员工的姓名和工资

SQL> select ename,sal from emp where ename like '__O%';

where条件中使用in

?       如何显示empno为123,345,800...的雇员情况

select * from emp where empno=123 or empno=345 or empno=800;

select * from emp where empno in(123,345,800);

使用is null的操作符

?       如何显示没有上级的雇员的情况

select * from emp where mgr is null;

使用逻辑操作符合

?       查询工资高于500或是岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J

select * from emp where (sal>500 or job=’MANAGER’) and ename like ‘J%’;

使用order by字句

   (对查询结果进行排序显示   asc升序  desc降序  默认asc)

?       如何按照工资从低到高的顺序显示雇员的信息

select * from emp order by sal;

?       按照部门号升序雇员的入职时间降序排列

select *  from emp order by deptno,hiredate desc;

order by 可以按照列的序号来排序

select eanme,sal from emp order by 2;  //不能使无中生有的列号,否则出错

使用列的别名排序

    oracle支持使用别名排序

select ename,sal*13+nvl(comm,0)*13  “年薪” from emp order by “年薪” asc;

一个单词的别名可以不用双引号,但如果是两个或多个单词作为一个别名就需要使用双引号圈中

posted @ 2019-07-01 14:03  樊伟胜  阅读(200)  评论(0编辑  收藏  举报