oracle的条件查询和排序查询

在查询中过滤行
过滤

使用 WHERE 子句,将不满足条件的行过滤掉。

SELECT *|{[DISTINCT] column|expression [alias],…}

FROM table

[WHERE condition(s)];

WHERE 子句紧随 FROM 子句

WHERE 子句
SELECT employee_id, last_name, job_id, department_id

FROM employees

WHERE department_id = 90 ;

字符和日期
字符和日期要包含在单引号中。

字符大小写敏感,日期格式敏感。

默认的日期格式是 DD-MON-RR 。

SELECT last_name, job_id, department_id

FROM employees

WHERE last_name = ‘Whalen’;

比较运算
SELECT last_name, salary

FROM employees

WHERE salary <= 3000;

其它比较运算

BETWEEN
使用 BETWEEN 运算来显示在一个区间内的值

SELECT last_name, salary

FROM employees

WHERE salary BETWEEN 2500 AND 3500;

IN
使用 IN 运算显示列表中的值。

SELECT employee_id, last_name, salary, manager_id

FROM employees

WHERE manager_id IN (100, 101, 201);

LIKE
使用 LIKE 运算选择类似的值

选择条件可以包含字符或数字 :

% 代表零个或多个字符 ( 任意个字符 ) 。

_ 代表一个字符。

SELECT first_name

FROM employees

WHERE first_name LIKE ‘S%’;

‘%’ 和 ‘-’ 可以同时使用。

SELECT last_name

FROM employees

WHERE last_name LIKE ‘_o%’;

可以使用 ESCAPE 标识符选择 ‘%’ 和 ‘_’ 符号。

ESCAPE
回避特殊符号的:使用转义符。例如:将 [%] 转为 [%] 、 [_] 转为 [_] ,然后再加上 [ESCAPE ‘\’] 即可。

SELECT job_id

FROM jobs

WHERE job_id LIKE ‘IT_%‘ escape ‘\‘;

NULL
使用 IS (NOT) NULL 判断空值。

SELECT last_name, manager_id

FROM employees

WHERE manager_id IS NULL;

逻辑运算

AND
AND 要求并的关系为真。

SELECT employee_id, last_name, job_id, salary

FROM employees

WHERE salary >=10000

AND job_id LIKE ‘%MAN%’;

OR
OR 要求或关系为真。

SELECT employee_id, last_name, job_id, salary

FROM employees

WHERE salary >= 10000

OR job_id LIKE ‘%MAN%’;

NOT
SELECT last_name, job_id

FROM employees

WHERE job_id

   NOT IN ('IT_PROG', 'ST_CLERK', 'SA_REP');

优先级
可以使用括号改变优先级顺序

ORDER BY子句
使用 ORDER BY 子句排序

ASC ( ascend ) : 升序

DESC ( descend ) : 降序

ORDER BY 子句在 SELECT 语句的结尾。

SELECT last_name, job_id, department_id, hire_date

FROM employees

ORDER BY hire_date ;

降序排序
SELECT last_name, job_id, department_id, hire_date

FROM employees

ORDER BY hire_date DESC ;

按别名排序
SELECT employee_id, last_name, salary*12 annsal

FROM employees

ORDER BY annsal;

多个列排序
按照 ORDER BY 列表的顺序排序。

SELECT last_name, department_id, salary

FROM employees

ORDER BY department_id, salary DESC;

可以使用不在 SELECT 列表中的列排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值