- 类别:
:doc:`/sql-reference/functions-string`(匹配/比较)
ENDSWITH¶
如果第一个表达式以第二个表达式结尾,则返回 TRUE。这两个表达式都必须是文本表达式或二进制表达式。
小技巧
您可以使用搜索优化服务,提高用于调用此函数的查询的性能。有关详细信息,请参阅 搜索优化服务。
语法¶
ENDSWITH( <expr1> , <expr2> )
实参¶
expr1
要在其中搜索的字符串。
expr2
要在
expr1
的末尾搜索的字符串。
返回¶
返回 BOOLEAN 或 NULL:
如果
expr2
以expr1
结尾,则返回 TRUE。如果
expr2
不以expr1
结尾,则返回 FALSE。如果任一输入表达式为 NULL,则返回 NULL。
排序规则详细信息¶
The collation specifications of all input arguments must be compatible.
此函数不支持以下排序规则规范:
示例¶
这些示例使用了 ENDSWITH 函数。
确定列值是否包含字符串¶
创建包含字符串值的单列表。
CREATE OR REPLACE TABLE strings_test (s VARCHAR);
INSERT INTO strings_test values
('coffee'),
('ice tea'),
('latte'),
('tea'),
(NULL);
SELECT * from strings_test;
+---------+
| S |
|---------|
| coffee |
| ice tea |
| latte |
| tea |
| NULL |
+---------+
确定列 s
中的值是否以字符串 te
结尾:
SELECT * FROM strings_test WHERE ENDSWITH(s, 'te');
+-------+
| S |
|-------|
| latte |
+-------+
将 ENDSWITH 与排序规则结合使用¶
在下面的示例中,对于具有不同排序规则规范的相同实参值,ENDSWITH 返回不同的结果。
SELECT ENDSWITH(COLLATE('nñ', 'en-ci-ai'), 'n'),
ENDSWITH(COLLATE('nñ', 'es-ci-ai'), 'n');
+------------------------------------------+------------------------------------------+
| ENDSWITH(COLLATE('NÑ', 'EN-CI-AI'), 'N') | ENDSWITH(COLLATE('NÑ', 'ES-CI-AI'), 'N') |
|------------------------------------------+------------------------------------------|
| True | False |
+------------------------------------------+------------------------------------------+