您的位置:首页 > 数据库 > Oracle

Oracle基础条件查询

2019-04-24 20:10 411 查看

当我们要组合三个或者三个以上条件的时候,就需要用到小括号()来表示应该如何进行条件运算。

例如,编写一个复杂的条件:工资在5000以下或者10000以上,并且是JOB_ID为SA_MAN:

按多个条件查询employees:

SELECT employee_id,last_name,salary,job_id FROM employees

WHERE (salary < 5000 OR salary > 10000) AND JOB_ID = 'SA_MAN';

 

如果不加括号,条件运算按照NOT、AND、OR的优先级进行;

NOT优先级最高,

AND其次,

OR是最后;

加上括号可以改变优先级。

在Oracle条件查询where条件之中,当遇到查询值不清楚时,可以利用模糊查询LIKE关键字进行where条件的模糊查询。

LIKE 关键字通过字符匹配检索出所需要的数据行。字符匹配操作可以使用通配符“%”和“_” :

例如,查询last_name包含有in这两个的字符的数据:

SELECT employee_id,last_name,salary,job_id FROM employees

WHERE  last_name LIKE '%ing%';

%:表示零个或者多个任意字符。

_:代表一个任意字符。

    可以通过使用escape标识符选择’%’或者’_’;

\:指转义字符,“\%”在字符串中表示一个字符“%”。

    回避特殊符号的:使用转义符。

例如:将[%]转为[\%]、[_]转为[\_],然后再加上[ESCAPE ‘\’] 。

    SELECT employee_id,last_name,salary,job_id FROM employees

WHERE  job_id LIKE ‘IT\_%‘ escape ‘\‘;

   

常用的一些条件表达式

条件 表达式举例1 表达式举例2 说明

使用=判断相等  

salary = 5000   last_name = 'King'  字符串需要用单引号括起来;

 

使用>判断大于  

salary > 5000   last_name > 'King'  字符串比较根据ASCII码,中文字符比较根据数据库设置;

 

使用>=判断大于或相等

salary >= 5000  last_name >= 'King';

 

使用<判断小于  

salary < 5000   last_name <= 'King';

 

使用<=判断小于或相等

salary <= 5000  last_name <= 'King';

 

使用<>判断不相等

salary <> 5000  last_name <> 'King';

 

使用LIKE判断相似  

last_name LIKE 'King%'   last_name LIKE '%in%'   

%表示任意字符

例如'Kin%'将匹配'Kin','King','Kingd'

 

    查询工资在5000元(含)~1000000元(含)之间的员工可以使用的WHERE语句是:

    WHERE salary >= 5000 OR salary <= 10000

    WHERE salary >= 5000 AND salary <= 10000

    WHERE salary IN (5000, 10000)

    WHERE salary BETWEEN 5000 AND 10000

    WHERE 5000 <= salary <= 10000

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: