比较运算符的使用

比较运算符 

=  <=>  <>  !=  <  <=  >  >=

 # 字符串存在隐式转换。如果转换成数字(数值)不成功,则看做0

# 字符串存在隐式转换。如果转换成数字(数值)不成功,则看做0
# 为什么  1 = 'a' 输出 0 ? 0 = 'a' 输出 1?
# 解释:因为 字符串 'a' 无法转换成数字,则看做是 0,那么 0 = 'a' 即 0 = '0' 成立输出 1  

select 1 = 2,1 != 2	,1 = '1',1 = 'a',0 = 'a'
FROM dual; 


 # 两边都是字符串的话,则按照ANSI的比较规则进行比较

# 两边都是字符串的话,则按照ANSI的比较规则进行比较

select  'a' = 'a','ab'  = 'ab','a' = 'b'
from dual;

 


# 只要有 NULL 参与判断,结果就为 NULL 

# 只要有 NULL 参与判断,结果就为 NULL

select 1 = NULL,NULL  = NULL ,  null = null
from dual;

 

注意: 
 1、首先需要注意的是有两条数据 列 commission_pct 的值为空; 
 2、由于 【只要有 NULL 参与判断,结果就为 NULL】,所以无匹配结果
 3、条件改为 commission_pct is null 即可


 安全等于 <=>

 安全等于运算符(<=>) 与 等于(=)运算符的作用是相似的,唯一的区别 是 '<=>' 可以对 NULL 进行判断。在两个操作数均为  NULL 时,其返回值为 1,而不为 NULL;当一个操作数为 NULL 时,其返回值为 0,而不为 NULL。 

  


 练习:查询表中 commission_pct 为空的数据

select *
from employees
where commission_pct <=> NULL;

select *
from employees
where ISNULL(commission_pct);

 

# LEAST()  \  GREATEST()   【最小  \  最大 】

-- 输出 a,d
-- 按照字母比较规则 a、b、c、d...,a最小、z 最大
select  LEAST('a','b','c','d'),GREATEST('a','b','c','d')
FROM dual;

-- 输出最小的数 2
select LEAST(2,6)
FROM dual;

 between 条件1 and 条件2 (查询条件1 和 条件2 范围内的数据,包含边界。)

select *
from employees
where salary between 8000 and 9000;

select *
from employees
where salary  >= 8000 && salary<=9000;

#工资不在 8000 到 9000的员工
select *
from employees
where salary not between 8000 and 9000;

select *
from employees
where salary  < 8000 or salary > 9000;

 


 IN()   \   NOT  IN() 【包含\不包含】

LIKE  '%a%'  模糊查询

 % : 代表不确定个数的字符

_  代表一个不确定的字符

# 查询第二个字符为 'M' 的员工
select *
from employees
where last_name like '_M%';

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值