LIKE 或 MATCHES 条件
如果下列任一为真,即符合 LIKE 或 MATCHES 条件:
• LIKE 或 MATCHES 关键字前面的列的值与加引号的字符串指定的模式相匹配。您可在字
符串中使用通配符。
• LIKE 或 MATCHES 关键字前面的列的值与由跟在 LIKE 或 MATCHES 关键字之后的列
指定的模式相匹配。在条件中,右边的列值作为匹配模式。
在 LIKE 或 MATCHES 条件中指定的列可以为简单的字符数据类型(如 CHAR、LVARCHAR、
NCHAR、NVARCHAR 或 VARCHAR)或数值型数据类型(如 INTEGER、SMALLINT、
DECIMAL 或 NUMERIC(p,s)、FLOAT、SMALLFLOAT、BIGINT、INT8、BIGSERIAL、
SERIAL、SERIAL8、MONEY )。
下列 SELECT 语句返回 customer 表中 VARCHAR 类型的 lname 列以文字字符串 ‘Baxter’ 开
头的所有行。由于该字符串为文字字符串,因此该条件区分大小写。
SELECT * FROM customer WHERE lname LIKE ‘Baxter%’ ;
下列 SELECT 语句返回 SG_DEV_ACLINE 表中的 length 列包含数字 ‘261’ 的所有行。length 列
是该表的一数值型字段
SELECT * FROM SG_DEV_ACLINE WHERE length LIKE ‘%261%’ ;
以下 SELECT 语句返回 customer 表中 lname 列的值与 fname 列的值相匹配的所有行:
SELECT * FROM customer WHERE lname LIKE fname;
下列示例使用反斜线(
\)作为缺省的转义字符。通过 DEFAULTESCCHAR 配置参数或
DEFAULTESCCHAR 会话环境选项设置缺省的转义字符。
以下示例使用带有通配符的 LIKE 条件。第一条 SELECT 语句查找所有球类的库存商品。第二条
SELECT 语句查找所有包含百分号(%)的公司名称。反斜杠(
\)用作百分号(%)通配符的缺省
转义字符。第三条 SELECT 语句使用 ESCAPE 选项和 LIKE 条件从 customer 表中检索
company 列包含百分号(%)的行。z 用作百分号(%)的转义字符:
SELECT stock_num, manu_code FROM stock
WHERE description LIKE ‘%ball’;
SELECT * FROM customer WHERE company LIKE ‘%%%’;
SELECT * FROM customer WHERE company LIKE ‘%z%%’ ESCAPE ‘z’;
下列示例在 SELECT 语句中使用带有通配符的 MATCHES。第一条 SELECT 语句查找所有球类
的库存商品。第二条 SELECT 语句查找所有包含星号(
*)的公司名称。反斜杠(
\)用作文字星
号(
*)字符的缺省转义字符。第三条语句使用 ESCAPE 选项和 MACHES 条件从 customer 表
中检索 company 列包含星号(
*)的行。指定 z 字符作为星号(
*)字符的转义字符。:
SELECT stock_num, manu_code FROM stock
WHERE description MATCHES ‘*ball’;
SELECT * FROM customer WHERE company MATCHES ‘*’;
SELECT * FROM customer WHERE company MATCHES ‘z*’ ESCAPE ‘z’;
要获取关于 LIKE 或 MATCHES 表达式中支持的运算对象的数据类型的信息,请参阅主题 LIKE
和 MATCHES 条件。