今天下午上班没事,就把oracle的sql手册找出来,一一做了一下,才发现对rang condition(范围条件),between..and..的理解一直是错误的,现简单地总结(都不好意思说,太简单了,但不注意可能会在生产环境中造成错误).
1)sql中的conditions是在select,delete,update语句常常用到的,其中range condition只包含:(not)between..and.
2)oracle的between..and..前后都是闭区间,也就是说包含两个端的数,例如:
SELECT * FROM employees
WHERE salary
BETWEEN 2000 AND 3000;
查询返回 2000<=工资<=3000的员工
3)当前者数大于后者,如:salary between 100 and 10;此时不会出错,但salary为50的记录也不能被取出。
4)not between..and..只是取指定范围的相反范围,也就是不在这个范围的记录,其用户可以用组个逻辑条件来取代。
分享到:
相关推荐
GoldenGate supports homogeneous replication between Oracle databases. It supports heterogeneous replication involving other brands such as Microsoft SQL Server and IBM DB2 Universal Server. ...
) WHERE rn BETWEEN start_page_num AND end_page_num; ``` 或者使用分析函数: ```sql SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER (ORDER BY some_column) rn FROM your_table t ) WHERE rn ...
AND m.sal BETWEEN s2.losal AND s2.hisal; ``` 这里,`salgrade`表提供了工资等级的范围,`decode`函数用于将数字等级转换为文字描述。 总结来说,Oracle的查询能力强大且灵活,通过熟练掌握多表查询、分组统计和...
高级查询技巧包括DISTINCT去除重复行,NULL处理,使用IN、BETWEEN...AND...、LIKE和集合运算进行复杂过滤,以及通过JOIN实现多表查询。 子查询是在主查询内部的嵌套查询,用于获取满足特定条件的数据。Oracle的伪列...
WHERE子句用于设置查询条件,支持等值比较、不等值比较、逻辑运算符AND和OR、IN操作、NULL值处理、BETWEEN...AND以及模糊查询LIKE。 Oracle数据库还提供了丰富的内置函数,如单行函数sysdate获取当前时间,mod()...
Oracle Database Transactions and Locking Revealed provides much-needed information for building scalable, high-concurrency applications and deploy them against the Oracle Database. Read this short, ...
6. **逻辑运算符**:`AND`和`OR`用于组合多个条件。显示10号部门的经理和20号部门的职工信息。 7. **模糊查询**:`LIKE`操作符用于进行模式匹配,`%`作为通配符,表示任意数量的字符。查询没有'L'的员工或名字中...
2. **日期和时间函数**:如SYSDATE获取当前系统日期,ADD_MONTHS()添加指定月数,MONTHS_BETWEEN()计算两个日期之间的月数差。DATE_FORMAT()和EXTRACT()用于格式化日期和提取日期部分,帮助我们灵活处理时间信息。 ...
14. 日期范围查询:`BETWEEN`用于指定日期范围,如`SELECT * FROM emp WHERE hiredate BETWEEN '01-JAN-81' AND '31-DEC-81';`。 15. 大小写敏感:Oracle在查询时区分大小写。 16. 排除特定值:`NOT IN`用于排除...
- **AND`、`OR`、`NOT`:逻辑运算符,用于组合多个条件。 - **BETWEEN`和`IN`:用于范围和列表匹配。 - **IS NULL`:用于检查值是否为空。 ### 8. 显示和格式化输出 - **COLUMN`命令:用于设置列的显示格式,包括...
- **SQL 语句**: `SELECT * FROM dba_hist_active_sess_history WHERE event LIKE '%latch%' AND sample_time BETWEEN TO_DATE('2013-12-02 11:00', 'YYYY-MM-DD HH24:MI') AND TO_DATE('2013-12-02 12:00', 'YYYY-...
Oracle 教程 本 Oracle 教程旨在帮助 Oracle 数据库初学者和数据库专业人士,涵盖了 Oracle 的基本和高级概念。以下是本教程中的知识点: 1. 查询数据 * Select 语句:查询单个表中的数据 * ORDER BY 语句:按...
- `BETWEEN` 用于查找字段值在指定范围内的记录,如`WHERE 字段 BETWEEN 最小值 AND 最大值`。 - `IN` 和 `NOT IN` 用于匹配多个值,`IN (值1, 值2, ...)`和`NOT IN (值1, 值2, ...)`。 - `LIKE` 用于模糊查询,`...
- MONTHS_BETWEEN:计算两个日期之间的月数。 - TO_DATE:将字符串转换为日期格式。 - EXTRACT:从日期或时间值中提取部分(如年、月、日)。 4. **转换函数** - TO_CHAR:将日期、数字等转换为字符串。 - TO_...
- 使用`BETWEEN`关键字可方便地查询介于两个值之间的记录,如`SELECT * FROM T_ACCOUNT WHERE usenum BETWEEN 10000 AND 20000`,或使用`>=`和`组合,如`SELECT * FROM T_ACCOUNT WHERE usenum>=10000 AND usenum。...
=`, `, `>`, `, `>=`, `BETWEEN`, `IN`, `LIKE`, `IS NULL` - **逻辑运算符**:`AND`, `OR`, `NOT` - **字符串函数**:`LOWER()`, `UPPER()`, `INITCAP()`, `SUBSTR()`, `CONCAT()` - **数值函数**:`ROUND()`, `...
- `BETWEEN`操作符用于在两个日期之间筛选,如`WHERE 订单日期 BETWEEN '01/jan/2002' AND '31/jan/2002'`。 - `IN`操作符也可以用来筛选日期范围,但通常不会像`BETWEEN`那样处理闭区间。 6. **字符串操作**: ...
例如,如果要获取第6到第10条按工资降序排列的记录,可以写成:`SELECT * FROM (SELECT * FROM employees ORDER BY salary DESC) WHERE rownum BETWEEN 6 AND 10`。 掌握Oracle的伪列和子查询技巧,能够帮助我们...
select ename, sal from emp where sal between 800 and 1500; ``` - **模糊查询**: ```sql select ename from emp where ename like '%ALL%'; // 模糊查询 ``` - **转义字符**: ```sql select ename from ...
Oracle SQL性能优化是一个复杂而深入的主题,涉及到数据库的多个层面,包括查询优化、索引策略、表设计、存储优化以及数据库参数调整等。以下是一些关键的知识点: 1. **查询优化器**: Oracle数据库使用查询优化器...