提示
Hive SQL 教程 欢迎使用。提供建议、纠错、催更等加作者微信: gairuo123(备注:sql )和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
为了过滤返回的某些结果,我们需要在查询中使用 WHERE 子句。 通过按逻辑筛选特定的列值以确定是否应将其包含在结果中,将数据的每一行都符合我们给定的条件。
本文例子中使用的数据是筛选指定字段中的数据内容。
SELECT column, another_column, etc
FROM mytable
WHERE condition
AND/OR another_condition
AND/OR another_condition;
其中:
以下 Where 子句中的逻辑操作符号:
操作 | 条件说明 | SQL 样例 |
---|---|---|
=, !=, <>, < <=, >, >= | 数字及逻辑 | class != 3; math > 80 |
IS NULL | 值为 NULL | name IS NULL |
IS NOT NULL | 值不为 NULL | name IS NOT NULL |
BETWEEN … AND … | 包含两端的数字范围 | math BETWEEN 60 AND 80 |
NOT BETWEEN … AND … | 上述的不包含 | math NOT BETWEEN 60 AND 80 |
IN (…) | 内容在指定的列表中 | class IN (1,2) |
NOT IN (…) | 不在指定的列表中 | class NOT IN (1,2) |
LIKE … | 按内容搜索匹配 | name LIKE "张%" |
NOT LIKE … | 不匹配此规则 | name NOT LIKE "张%" |
注:
a = ''
%
和 _
通配符等进行匹配通配符:
%
:匹配不定长,"%AT%" (匹配 "AT", "ATTIC", "CAT" 及 "BATS")_
:匹配1个定长,"AN_" (匹配 "AND", 但不匹配 "AN")注:如果需要匹配 %
和 _
本身,需要进行转义,如 8\%%
(8%,8%9),my\_code_
(my_codes)。
-- 一班的
select name,class from students where class = 1
'''
name|class|
----+-----+
张涛 | 1|
赵丹丹 | 1|
田迪 | 1|
周平 | 1|
'''
-- 姓名为空的
select name,class from students where name = ''
-- 数学大于80的
select name,math from students where math > 80
'''
name|math|
----+----+
王琳 | 88|
王卫栋 | 88|
'''
-- 不为88的
select name,math from students where math != 88
-- 大于等于 66
select name,math from students where math >= 66
-- 姓名不为空的
select name,math from students where name IS NOT NULL
-- 数学成绩66分到88分之间的,包含66和88
select name,math from students where math between 66 and 88
-- 生日不在 2000 年到 2011 年的
select name,b_year from students where b_year not between 2000 and 2011
-- 一班的
select name,class from students where class in (1)
-- 非一班和三班的
select name,class from students where class not in (1,3)
-- 指定学生
select name,class from students where name in ('李成', '田迪', '武明')
-- 姓王的同学
select name,b_year from students where name like '王%'
-- 不姓赵的同学
select name,b_year from students where name not like '赵%'
-- 姓名为王某的
select name from students where name like '王_'
-- 姓名为赵某某的
select name from students where name like '赵__'
-- 姓名两个字的
select name from students where name like '__'
-- 姓名至少两个字,倒数第二个为天字的
select name from students where name like '%天_'
更新时间:2021-06-17 12:14:46 标签:sql 条件