PostgreSQL 比较运算符

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: PostgreSQL 比较运算符
运算符 作用
= 等于
<>(!=) 不等于
<= 小于等于
>= 大于等于
> 大于
< 小于
LEAST 在有两个或多个参数时,返回最小值
GREATEST 在有两个或多个参数时,返回最大值
BETWEEN ... AND ... 判断一个值是否落在两个值直见
IN 判断一个值是IN列表中的任意一个值
LIKE 通配符匹配


等于运算符(=)

等于 “=” 用来判断数字、字符串和表达式是否相等。如果相等,返回值为 t ,否则返回 f


规则如下

  1. 若有一个或两个参数为NULL,则比较运算的结果为空
  2. 若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。
  3. 若两个参数均为整数,则按照整数进行比较。
  4. 若一个字符串和数字进行相等判断,则PostgreSQL可以自动将字符串转化为数字


示例:

$ SELECT 1=0,'2'=2,2=2,'b'='b',(1+3)=(2+1),NULL=NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
false true true true false null


不等于运算符(<>或者!=)

‘<>’ 或者 ‘!=’ 用于判断数字、字符串、表达式不相等的判断,如果不相等,返回 t , 否则返回 f 。注意:规则等同于“=”运算符


示例:

$ SELECT 'good'<>'god',1<>2,4!=4,5.5!=5,(1+3)!=(2+1),NULL<>NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true true false true true null


小于等于运算符(<=)

“<=” 用来判断左边的操作数是否小于或者等于右边的操作数,如果小于或者等于,返回值为 t , 否则返回 f 。注意:不能用于判断空值NULL


示例:

$ SELECT 'good'<='god',1<=2,4<=4,5.5<=5,(1+3)<=(2+1),NULL<=NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
false true true false false null


说明:'good'<='god' 运算方式为:按照字母顺序一个一个比较,第一个字母都是 g ,相同,比较下一个;下一都是 o ,也相同,继续往下走;第三个,一个是 o ,一个是 d ,不相同,然后按照字母表中的顺序 o 是排在 d 后面的,因此 'good'>'god' ,返回 t


小于运算符(>)

“<” 用来判断左边的操作数是否小于右边的操作数,如果小于,返回值为 t , 否则返回 f 。注意:不能用于判断空值NULL


示例:

$ SELECT 'good'<'god',1<2,4<4,5.5<5,(1+3)<(2+1),NULL<NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true false false true true null


大于等于运算符(>=)

“>=” 用来判断左边的操作数是否大于或者等于右边的操作数,如果大于或者等于,返回值为 t , 否则返回 f 。注意:不能用于判断空值NULL


示例:

$ SELECT 'good'>='god',1>=2,4>=4,5.5>=5,(1+3)>=(2+1),NULL>=NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true false false true true null


大于运算符(>)

“>” 用来判断左边的操作数是否大于右边的操作数,如果大于,返回值为 t , 否则返回 f 。注意:不能用于判断空值NULL


示例:

$ SELECT 'good'>'god',1>2,4>4,5.5>5,(1+3)>(2+1),NULL>NULL;点击复制复制失败已复制


结果入下:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true false false true true null


BETWEEN AND 运算符

BETWEEN AND 运算符的语法格式为:

expr BETWEEN min AND max点击复制复制失败已复制


作用于全闭空间,即: expr ∈ [min, max]


示例:

$ SELECT 4 BETWEEN 2 AND 5, 4 BETWEEN 4 AND 6, 12 BETWEEN 9 AND 10;点击复制复制失败已复制


结果如下:

?column?(boolean) ?column?(boolean) ?column?(boolean)
true true false


BETWEEN AND 运算符也可以用于字符串比较,示例如下:

$ SELECT 'x' BETWEEN 'f' AND 'g', 'b' BETWEEN 'a' AND 'c';点击复制复制失败已复制


结果如下:

?column?(boolean) ?column?(boolean)
false true


LEAST 运算符——取最小值

LEAST 运算符的语法格式为:

LEAST(值1,值2,值3,...,值n)点击复制复制失败已复制


在有两个或多个参数的情况下,返回最小值,假如任意一个值为NULL,则在比较中忽略不计


示例:

$ SELECT LEAST(2,0),LEAST(20.0,3.0,100.5),LEAST('a','c','b'),LEAST(10,NULL);点击复制复制失败已复制


结果如下:

least(integer) least(numeric) least(text) least(integer)
0 3.0 a 10


GREATEST 运算符——取最大值

GREATEST 运算符的语法格式为:

GREATEST(值1,值2,值3,...,值n)点击复制复制失败已复制


在有两个或多个参数的情况下,返回最大值,假如任意一个值为NULL,则在比较中忽略不计


示例:

$ SELECT GREATEST(2,0),GREATEST(20.0,3.0,100.5),GREATEST('a','c','b'),GREATEST(10,NULL);点击复制复制失败已复制


结果如下:

greatest(integer) greatest(numeric) greatest(text) greatest(integer)
2 100.5 c 10


IN、NOT IN 运算符

IN 运算符用来判断操作数是否为 IN列表 中的某一个值,如果是,那么返回值为 t ,否则返回值为 f


NOT IN 运算符用来判断操作数是否为 IN列表 中的某一个值,如果不是,那么返回值为 t ,否则返回值为 f


注意: 列表中的格式需要相同,但可包含NULL。例如: 2 IN (2,0,100.5, 'a' ) 这种就会报错。


重点: 在左侧表达式为 NULL 的情况下,或者表中找不到匹配项目并且表中有一个表达式为 NULL 的情况下, IN 的返回值为 空值


IN 运算符也可以用于 SELECT 语句中进行嵌套子查询


示例:

$ SELECT 2 IN (2,0,58),2 IN (2,0,100.5), 2 NOT IN (5,0 ,2),NULL IN (1,3,5), NULL IN (1,NULL), 10 IN (2, 10, NULL);点击复制复制失败已复制


结果:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true true false null null true


LIKE

LIKE 运算符用来匹配字符串,语法格式为: expr LIKE 匹配条件 。如果 expr 满足匹配条件,就返回 t ,如果不匹配就返回 f


重点:expr 或匹配条件中任何一个NULL ,则结果为 空值


支持的通配符

  1. %: 匹配任何数目的字符,甚至包括零字符
  2. _: 只能匹配一个字符

示例:

$ SELECT 'stud' LIKE 'stud', 'stud' LIKE 'stu_', 'stud' LIKE '%d', 'stud' LIKE 't___','s' LIKE NULL; 点击复制复制失败已复制


结果:

?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean) ?column?(boolean)
true true true false null
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
6月前
|
SQL 关系型数据库 分布式数据库
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能,而不是使用IF函数
91 7
|
JSON 关系型数据库 PostgreSQL
postgresql中的@> 是什么运算符?
如果在一个数组列中想查询包含有某个字符换的时候就不能用like 了吧?
158 0
|
6月前
|
SQL 关系型数据库 分布式数据库
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能
在PolarDB for PostgreSQL中,你可以使用LIKE运算符来实现类似的查询功能【1月更文挑战第13天】【1月更文挑战第65篇】
64 2
|
关系型数据库 分布式数据库 PolarDB
|
关系型数据库 分布式数据库 定位技术
PolarDB for PostgreSQL 开源必读手册-VACUUM处理(中)
PolarDB for PostgreSQL 开源必读手册-VACUUM处理
167 0
|
关系型数据库 分布式数据库 PolarDB
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
《阿里云产品手册2022-2023 版》——PolarDB for PostgreSQL
363 0
|
存储 缓存 关系型数据库
|
存储 SQL 并行计算
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(中)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
419 0
|
存储 算法 安全
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍(下)
PolarDB for PostgreSQL 开源必读手册-开源PolarDB for PostgreSQL架构介绍
379 0
|
关系型数据库 分布式数据库 开发工具