SQL高级语句-BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。

来源:互联网 发布:逆战磁暴矩阵怎么用 编辑:程序博客网 时间:2024/05/13 22:33

BETWEEN 操作符

操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

SQL BETWEEN 语法

SELECT column_name(s)FROM table_nameWHERE column_nameBETWEEN value1 AND value2

原始的表 (在实例中使用:)

Persons 表:

IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10Beijing

BETWEEN 操作符实例

如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL:

SELECT * FROM PersonsWHERE LastNameBETWEEN 'Adams' AND 'Carter'

结果集:

IdLastNameFirstNameAddressCity1AdamsJohnOxford StreetLondon2BushGeorgeFifth AvenueNew York

重要事项:不同的数据库对 BETWEEN...AND 操作符的处理方式是有差异的。某些数据库会列出介于 "Adams" 和 "Carter" 之间的人,但不包括 "Adams" 和 "Carter" ;某些数据库会列出介于 "Adams" 和 "Carter" 之间并包括 "Adams" 和 "Carter" 的人;而另一些数据库会列出介于 "Adams" 和 "Carter" 之间的人,包括 "Adams" ,但不包括 "Carter" 。

所以,请检查你的数据库是如何处理 BETWEEN....AND 操作符的!

(一)oracle数据库:查找到的数据是包括 and 字符前后两个数据的

(二)oracle数据库:按照特定的某段时间范围查找数据记录

 select *
   from table_name
  where to_char(createtime, 'yyyy-mm-dd') >= '2017-02-17'
    and to_char(createtime, 'yyyy-mm-dd') <= '2017-02-18'

实例 2

如需使用上面的例子显示范围之外的人,请使用 NOT 操作符:

SELECT * FROM PersonsWHERE LastNameNOT BETWEEN 'Adams' AND 'Carter'

结果集:

IdLastNameFirstNameAddressCity3CarterThomasChangan StreetBeijing4GatesBillXuanwumen 10Beijing
0 0