SQL执行顺序

按惯例先上SQL Server查询顺序,小括号()里面的数字代码数据库引擎在执行查询语句时候的先后顺序,从1开始:

(8)SELECT (9)DISTINCT  (11)<top Num> <select list>1)FROM [left_table]3)<join_type> JOIN <right_table>2)        ON <join_condition>4)WHERE <where_condition>5)GROUP BY <group_by_list>6)WITH <CUBE | RollUP>7)HAVING <having_condition>10)ORDER BY <order_by_list>

AND和OR的用途比较广泛,在SQL执行顺序过程中很多地方都会使用到,上面红色部分是经常使用到的部分。

AND 和 OR 作用

AND 和 OR 运算符用于基于一个以上的条件对记录进行过滤。

AND 和 OR 使用

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

原始的表Customers (用在例子中的):

AND 运算符实例

使用 AND 来显示姓名为 "张三" 并且城市为 "上海" 的人:



SELECT * FROM Customers 
WHERE 姓名='张三' AND 城市='上海'



结果:

hive 里where条件筛选最新日期函数 hive where条件中如何使用or_运算符

AND就是要所有条件都满足才显示数据


OR 运算符实例

使用 OR 来显示所有姓名为 "张三" 或者城市为 "北京" 的人:



SELECT * FROM Customers 
WHERE 姓名='张三' OR 城市='北京'



结果:

hive 里where条件筛选最新日期函数 hive where条件中如何使用or_数据_02

OR则是只要满足其中一个条件即显示数据


结合 AND 和 OR 运算符

我们也可以把 AND 和 OR 结合起来(使用圆括号来组成复杂的表达式):

Order表里的数据:

hive 里where条件筛选最新日期函数 hive where条件中如何使用or_SQL_03

AND和OR结合后查询订单表中,客户ID是1或者3并且两个客户的发货ID都是4的订单信息:



SELECT * FROM Orders 
WHERE (客户ID=3 OR 客户ID=1) AND 发货ID=4



结果:

hive 里where条件筛选最新日期函数 hive where条件中如何使用or_SQL_04

批注

AND和OR其实很好理解,他们一个是并且逻辑运算符,一个是或者逻辑运算符,想象成我们日常生活中的并且和或者就可以了。