基本

如果有时候使用between and 子句查询不到数据,那么可能犯了这个错误:

select * from table where column between xxx and yyy

你以为查询结果是xxx和yyy之间的数据,而忽略了他们的顺序是有要求的。 列表的值必须是xxx所代表的值在排前,而yyy所代表的值在后才能够查询到。并不是说只要数据被 xxxyyy 包围就能查询到。这个子句更像 from xxx to xxx。更准确的说是查列中从xxx(数值)到yyy(数值)的数据。

它的语法:

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

微软的文档对此描述得比较清楚:

https://docs.microsoft.com/zh-cn/sql/t-sql/language-elements/between-transact-sql?view=sql-server-2017


实例

存在这么一个表:

那么执行

SELECT * FROM persons WHERE LastName BETWEEN '尼玛兽' AND 'Bush';

其结果为空。

然而交换between 和and 值的位置,得到的也并不是期望的结果:

SELECT * FROM persons WHERE LastName BETWEEN 'Bush' AND '尼玛兽';

尼玛兽 之后的东西都出来了。

如果执行

SELECT * FROM persons WHERE LastName BETWEEN 'carter' AND 'Wilson';

你以为 尼玛兽 会存在,事实上不会,你以为 hehe 不会存在,但他就在那里。

很明显了,它比较的是字段的值:

xxx<= val <=yyy

上面比较的就是字符串值了,而并非直接一个框,选中中间。

一个悲催的事情是:不同的数据库对 BETWEEN…AND 操作符的处理方式是有差异的。可能相当于:

x<= val <=yx< val <yx<= val <y

所以,得检查所使用数据库系统是如何处理 BETWEEN….AND 操作符的。

sql between and 无效、无结果及注意事项相关推荐

  1. SQL对象名无效怎么办法 华骨龙

      使用sqlserver数据库时,产生SQL对象名无效的问题一般是以下两种常见原因,下面根据不同的原因给出解决方法. 原因一:数据库做过迁移,新数据库的对象所有者名称不同造成 数据库做了迁移后,一般 ...

  2. Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is ...

  3. java无效字符 怎么解决_java.sql.SQLException: ORA-00911: 无效字符 解决方法

    java建立oracle数据库,查询是出现以下错误信息: ava.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseErr ...

  4. java.sql.SQLException: ORA-00911: 无效字符 解决方法

    如果你用java写程序访问数据库,出现这个问题: java.sql.SQLException: ORA-00911: 无效字符 at oracle.jdbc.driver.DatabaseError. ...

  5. java光标位置无效_java - java.sql.SQLException:无效的光标位置 - 堆栈内存溢出

    我创建了一个简单的应用程序,使用户可以购买门票. 但是,每当我尝试购买" n"张门票时,都会遇到此错误. 现在,我知道在使用数据库进行操作时需要crs.next()语句,我已经使用 ...

  6. 解决bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 报错: ### Cause: java.sql.SQLSyntaxErrorException ...

  7. java sql in无效数字_java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字

    ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字 ### The error ...

  8. mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法

    mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法 参考文章: (1)mybatis项目报错:java.sql.SQLException: ...

  9. ### Cause: java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字

    org.springframework.dao.DataIntegrityViolationException: ### Error querying database. Cause: java.sq ...

  10. java.sql.SQLException: ORA-00911: 无效字符(编译器大坑)

    今天遇到一个问题,java中执行sql,sql明明是对的,复制到datagrip(或 plsql Dev)都能执行,但就是报错: 1017 122715 [http-apr-18083-exec-7] ...

最新文章

  1. 请求接口时params和data的区别
  2. 多线程同步之 WaitableTimer (等待定时器对象)[续三]
  3. java 判断日期是同一天_如何检查Java中的两个日期是否在同一天
  4. CompletableFuture源码详解之java.util.concurrent.CompletableFuture#runAsync(java.lang.Runnable)
  5. MongoDB最简单的入门教程之四:使用Spring Boot操作MongoDB
  6. (转)Cobbler无人值守批量安装Linux系统
  7. Android学习笔记(五)——RadioGroupRadioButton
  8. Turbo | 简介与安装
  9. java 合并两个有序数组
  10. matlab opnet,OPNET中设计网络 MATLAB
  11. ContentProvider跨进程注册、启动流程源码解析
  12. Windows 10 21H1开启关闭卓越模式
  13. acc 蓝牙_蓝牙音频传输格式:ACC,SBC,APTX和LDAC
  14. 数字证书的概念以及作用
  15. 判断用户flash是否安装了flash以及flash的版本
  16. php mysql 排班表_PHP倒班五班三倒
  17. 编译chrome for android,Chrome for Android 编译了两天终于在师傅指导下搞定
  18. 数字音频总线A2B开发详解二十:ADAU1701做的功放板的音效(26个例程)(第一部分)
  19. linux sh脚本各种数值进制转换(比如10进制转16)若干例子
  20. oracle600错误,oracle ora-600 Ktspgsb-1 错误处理案例

热门文章

  1. 最好的休息不是睡觉,而是…...
  2. 自然资源确权登记与不动产登记区别
  3. python除法运算代码_Python除法运算和幂运算代码实例
  4. Clickjacking Protection
  5. 酸了!看了2022年的放假安排,发现大摩的童鞋多了7天年假!
  6. jenkins实现前端自动化打包并部署到nginx服务器
  7. python正则表达式分组
  8. eclipse调试快捷键
  9. SpringKafka动态指定@KafkaListener的topics和groupId
  10. 什么是闭包,闭包详解