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;

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

转载于:https://www.cnblogs.com/fanweisheng/p/11113681.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle的WHERE CASE WHEN用法是一种条件语句,用于在WHERE子句根据条件进行筛选。它的语法如下: WHERE CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END; 其,condition1、condition2等是条件表达式,result1、result2等是对应条件表达式的结果。如果所有条件都不满足,则返回ELSE后面的结果N。 例如,以下语句将根据不同的条件筛选出不同的结果: SELECT * FROM table_name WHERE CASE WHEN column1 > 10 THEN 'A' WHEN column2 = 'B' THEN 'B' ELSE 'C' END; ### 回答2: Oracle的WHERE CASE WHEN函数是一种常用的条件逻辑函数,通过它我们可以根据指定的条件进行数据筛选和过滤。在使用WHERE CASE WHEN之前,需要先了解Oracle的CASE WHEN语句以及WHERE语句的用法。 CASE WHEN语句用于给定一组条件,并返回与条件匹配的结果。语法如下: CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE defaul_result END 其condition是条件表达式,result是满足条件时的结果,default_result是当条件都不满足时的默认结果。CASE WHEN语句可以嵌套使用,以实现更加复杂的逻辑。 WHERE语句用于筛选满足某些条件的数据行,常用的操作符包括等于(=)、不等于(<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、LIKE、IN等。WHERE语句也可以嵌套使用,并通过AND、OR、NOT等逻辑运算符组合多个条件表达式。 在Oracle,WHERE CASE WHEN语句可以在WHERE语句作为条件表达式使用。例如,我们可以通过WHERE CASE WHEN进行复杂的条件逻辑筛选,比如: SELECT * FROM employee WHERE CASE WHEN salary > 10000 THEN '高薪人群' WHEN salary > 5000 AND salary <= 10000 THEN '等薪资人群' ELSE '低收入人群' END = '高薪人群' 以上语句的含义是筛选薪资大于10000的员工信息,同时返回一个描述性的“高薪人群”标签。 总之,在Oracle,WHERE CASE WHEN语句通过灵活的逻辑判断和条件筛选,可以满足各种复杂查询需求。掌握这一功能将对我们进行数据处理和分析带来巨大便利。 ### 回答3: Oracle的WHERE CASE WHEN用法是一种强大的条件查询方式,可以根据不同的条件来返回不同的结果。其语法格式如下: ``` SELECT column1, column2, ... FROM table_name WHERE CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE result END; ``` 其,condition1、condition2等表示不同的条件,result1、result2等表示满足对应条件时返回的结果。ELSE result则表示当所有条件都不满足时返回的结果。 需要注意的是,WHERE CASE WHEN必须在WHERE语句使用,且它仅能返回一列数据。 下面通过一个例子来说明WHERE CASE WHEN的用法: 假设有一个商品表products,其包含商品名称(name)和价格(price)两列数据。现在我们要查询商品价格为100元时,对应商品的名称。可以使用以下语句: ``` SELECT name FROM products WHERE CASE WHEN price = 100 THEN 'Y' ELSE 'N' END = 'Y'; ``` 其,当商品价格为100元时,返回结果为'Y',否则返回结果为'N'。整个查询语句的作用就是根据这个结果是否为'Y'来判断是否满足条件,从而返回对应商品名称。 总之,WHERE CASE WHEN是一种非常灵活且有用的查询方式,在实际应用可以根据不同的需求灵活运用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值