CREATE
TABLE
emp (
ename VARCHAR2(20)
);
SELECT
*
FROM
EMP
WHERE
ENAME
BETWEEN
'A'
AND
'J'
;
/**根据上面例子得出的结论:
1、oracle使用字符串直接比较的原理
'ab1'
'>'
aa9999
''
首先比较字符串中的第一个字符的ASCII码值的大小,如果为真,则选中,如果为假,则排除,如果相等,则比较第二位
比较第二位字符的ASCII码值的大小,如果为真,则选中,如果为假,则排除,如果相等,则依次类推
2、
between
a
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
*/