BETWEENT AND

来源:互联网 发布:大数据与实体经济融合 编辑:程序博客网 时间:2024/06/05 20:43
CREATE TABLE emp (
  ename VARCHAR2(20)
);
 
SELECT FROM EMP  WHERE ENAME BETWEEN 'A' AND 'J';
 
/**根据上面例子得出的结论:
1、oracle使用字符串直接比较的原理 'ab1''>'aa9999''
  首先比较字符串中的第一个字符的ASCII码值的大小,如果为真,则选中,如果为假,则排除,如果相等,则比较第二位
  比较第二位字符的ASCII码值的大小,如果为真,则选中,如果为假,则排除,如果相等,则依次类推
2、between and b 框中的范围应该是 包含 a  包含 b 以及a-b之间的
 
则楼上的例子选中的应该是所有(XXX代表所有字符,....代表任意个):
ename 名字为A, AXXX...  到 IXXX...,以及包含名字为'J''的ename,不包含 JXXX...
 
下面是测试结果:
**/
INSERT INTO emp VALUES ('A');
INSERT INTO emp VALUES ('Aa');
INSERT INTO emp VALUES ('BSDFSDFDSFDSF');
INSERT INTO emp VALUES ('I999SFSFDSFSDFDSFDSF');
INSERT INTO emp VALUES ('J');
INSERT INTO emp VALUES ('J1');
 
SELECT * FROM EMP  WHERE ENAME BETWEEN 'A' AND 'J';
/* 查询结果:
1     A
2     Aa
3     BSDFSDFDSFDSF
4     I999SFSFDSFSDFDSFDSF
5     J
就没有插入的J1
*/
0 0