Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

LIKE

LIKE 运算符将字符串表达式(如列名称)与使用通配符 %(百分比)和 _(下划线)的模式进行比较。LIKE 模式匹配始终涵盖整个字符串。若要匹配字符串中任意位置的序列,模式必须以百分比符号开始和结尾。

LIKE 区分大小写;ILIKE 不区分大小写。

语法

Copy
expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]

参数

expression

有效的 UTF-8 字符表达式(如列名称)。

LIKE | ILIKE

LIKE 执行区分大小写的模式匹配。ILIKE 对单字节字符执行不区分大小写的模式匹配。LIKE 和 ILIKE 都对多字节字符执行不区分大小写的模式匹配。

pattern

具有要匹配的模式的有效的 UTF-8 字符表达式。

escape_char

将对模式中的元字符进行转义的字符表达式。默认为两个反斜杠 ('\\')。

如果 pattern 不包含元字符,则模式仅表示字符串本身;在此情况下,LIKE 的行为与等于运算符相同。

其中一个字符表达式可以是 CHAR 或 VARCHAR 数据类型。如果它们不同,Amazon Redshift 会将 pattern 转换为 expression 的数据类型。

LIKE 支持下列模式匹配元字符:

运算符 描述
% 匹配任意序列的零个或多个字符。
_ 匹配任何单个字符。

示例

下表显示使用 LIKE 的模式匹配的示例:

表达式 返回值
'abc' LIKE 'abc' True
'abc' LIKE 'a%' True
'abc' LIKE '_B_' False
'abc' ILIKE '_B_' True
'abc' LIKE 'c%' False

以下示例查找名称以“E”开头的所有城市:

Copy
select distinct city from users where city like 'E%' order by city; city --------------- East Hartford East Lansing East Rutherford East St. Louis Easthampton Easton Eatontown Eau Claire ...

以下示例查找姓中包含“ten”的用户:

Copy
select distinct lastname from users where lastname like '%ten%' order by lastname; lastname ------------- Christensen Wooten ...

以下示例查找第三和第四个字符为“ea”的城市。此命令使用 ILIKE 来演示不区分大小写的匹配:

Copy
select distinct city from users where city ilike '__EA%' order by city; city ------------- Brea Clearwater Great Falls Ocean City Olean Wheaton (6 rows)

以下示例使用默认转义字符串 (\\) 搜索包含“_”的字符串:

Copy
select tablename, "column" from pg_table_def where "column" like '%start\\_%' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

以下示例指定“^”作为转义字符,然后使用该转义字符搜索包含“_”的字符串:

Copy
select tablename, "column" from pg_table_def where "column" like '%start^_%' escape '^' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)

本页内容: