SQL> SELECT name
FROM donor
WHERE name BETWEEN J & R;
NAME
-- -- -- -- -- -- -- -
Jennifer Ames
Nancy Taylor
应该出现的名字是Robert Brooks。但是Ro比R大,所以我不知道该怎么做。输出使用BETWEEN子句缺少名称SQL
SQL> SELECT name
FROM donor
WHERE name BETWEEN J & R;
NAME
-- -- -- -- -- -- -- -
Jennifer Ames
Nancy Taylor
应该出现的名字是Robert Brooks。但是Ro比R大,所以我不知道该怎么做。输出使用BETWEEN子句缺少名称SQL
这应该让你有:
SELECT name
FROM donor
WHERE SUBSTR(NAME,1,1) BETWEEN 'J' AND 'R';
的SUBSTR
功能只比较名称的第一个字母。
下面是一个例子:
CREATE TABLE DONOR(
NAME VARCHAR2(128)
);
INSERT INTO DONOR VALUES ('Jennifer Ames');
INSERT INTO DONOR VALUES ('Nancy Taylor');
INSERT INTO DONOR VALUES ('Robert Brooks');
SELECT name
FROM donor
WHERE SUBSTR(NAME,1,1) BETWEEN 'J' AND 'R';
结果:
NAME
Jennifer Ames
Nancy Taylor
Robert Brooks
你可以使用一个字母了字母表?
... between 'J' and 'S'
不,我必须在这里使用J和R. –
@JBen - 为什么你**必须**使用J和R?罗杰所说的是非常有意义的。唯一的问题是如果你有一个名字完全是'S',因为它会选择那个,但否则这个建议确实**你需要的。如果你需要避免接受'S',那么你可以说'where name> ='J'和名字''S''。与“正确的”答案相比,如果你有一个'name'索引,这种方法会更快,因为使用'substr'意味着查询引擎**不能**使用索引。 – mathguy
@mathguy网站上的说明声明不使用任何其他字母。 –
非常感谢alexgibbs –