在我们写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);

查询结果:

image

注意:若orderid为字符串类型的话,括号里的订单ID需要加引号。

BETWEEN

BETWEEN一般用于判断一个值是否在指定的范围内,包括两个指定的边界值。例如,以下查询返回订单ID在10300至10310之间的所有订单。

SQL代码如下:

-- 设置数据库上下文
USE TSQLFundamentals2008;
GO

SELECT orderid,empid,orderdate 
FROM Sales.Orders
WHERE orderid BETWEEN 10300 AND 10310

查询结果:

image

注意:表示日期时间的范围也可以使用BETWEEN。

LIKE

LIKE一般用于判断一个字符串值是否与指定的模式匹配。例如,以下查询返回姓氏以字符’D’开头的所有雇员。

SQL查询代码:

-- 设置数据库上下文
USE TSQLFundamentals2008;
GO

SELECT empid,firstname,lastname 
FROM HR.Employees
WHERE lastname LIKE N'D%';

查询结果:

image

下面来总结逻辑运算符了,逻辑运算符主要用于把多个逻辑表达式组合起来。

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)

查询结果:

image

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)

查询结果:

image

posted on 2014-07-19 17:21  永远的麦子  阅读(2690)  评论(0编辑  收藏  举报