我创建了一个包含客户名称、客户电子邮件和他们的主要ID的表。
CREATE TABLE Customer
(
custID NUMBER(6),
custName VARCHAR2(30),
custEmail VARCHAR2(50),
PRIMARY KEY (custID)
);
INSERT INTO customer (custID, custName, custEmail) VALUES (1, 'D.Smith', 'dsmith@yahoo.co.uk');
INSERT INTO customer (custID, custName, custEmail) VALUES (2, 'B.Byrne', 'bb@gmail.com');
INSERT INTO customer (custID, custName, custEmail) VALUES (3, 'X.Dobbs', 'xb@gmail.com');
如何选择以特定大写字母开头的客户名称?
如果您正在寻找名称以大写X开头的客户,那么
SELECT *
FROM customers
WHERE first_name like 'X%';
如果字母可以出现在他们名字的任何地方,那么
SELECT *
FROM customers
WHERE first_name like '%X%';
正如其他答案所指出的,您必须使用LIKE运算符。
一般语法为SELECT X FROM Y WHERE X LIKE QUERY_PATTERN
该模式是使用通配符编写的。
- %A:任何以大写字母A结尾的值
- A%:任何以大写字母A开头的值
- %A%:任何至少包含一个大写字母A的值
- _A:任何正好有2个字符的值。第二个是大写字母A
- __A:任何正好有3个字符的值。第三个是大写字母A
这是在LIKE子句中使用通配符的一般概念。
您可以使用INSTR
函数而不是LIKE
:
SELECT * FROM Customer WHERE INSTR(custName, 'X') > 0;
演示:https://dbfiddle.uk/?rdbms=oracle_11.2&fiddle=ee86f44dbce13a743c3b5ff8821a42b
你试过吗
SELECT *
FROM customers
WHERE first_name LIKE 'R%';