在我们写SQL查询的过程中,有几个使用得非常频繁的谓词和逻辑运算符,谓词主要有IN,BETWEEN,以及LIKE。逻辑运算符主要有OR和AND。下面来分别总结它们。
IN
IN一般用于判断一个值是否与一组元素中的至少一个相等。例如,以下SQL查询返回订单ID等于10248,或10249,或10250的订单。
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT orderid,empid,orderdate FROM Sales.Orders WHERE orderid IN (10248,10249,10250);
查询结果:
注意:若orderid为字符串类型的话,括号里的订单ID需要加引号。
BETWEEN
BETWEEN一般用于判断一个值是否在指定的范围内,包括两个指定的边界值。例如,以下查询返回订单ID在10300至10310之间的所有订单。
SQL代码如下:
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT orderid,empid,orderdate FROM Sales.Orders WHERE orderid BETWEEN 10300 AND 10310
查询结果:
注意:表示日期时间的范围也可以使用BETWEEN。
LIKE
LIKE一般用于判断一个字符串值是否与指定的模式匹配。例如,以下查询返回姓氏以字符’D’开头的所有雇员。
SQL查询代码:
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT empid,firstname,lastname FROM HR.Employees WHERE lastname LIKE N'D%';
查询结果:
下面来总结逻辑运算符了,逻辑运算符主要用于把多个逻辑表达式组合起来。
OR
OR运算符表示或的关系。例如,以下查询返回2008年1月1日以后或由职员ID为1,2处理过的所有订单。
SQL查询代码:
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT orderid,empid,orderdate FROM Sales.Orders WHERE orderdate>='20080101' OR empid IN (1,2)
查询结果:
AND
AND表示且的关系。例如,以下查询返回2008年1月1日以后且由职员ID为1,2处理过的所有订单。
SQL查询代码:
-- 设置数据库上下文 USE TSQLFundamentals2008; GO SELECT orderid,empid,orderdate FROM Sales.Orders WHERE orderdate>='20080101' AND empid IN (1,2)
查询结果: