Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (E-O)

 

LOCATE 函数 [String]

返回一个字符串在另一个字符串中的位置。

语法
LOCATE( string-expression-1, string-expression-2 [, integer-expression ] )
参数
  • string-expression-1   被搜索的字符串。

  • string-expression-2   要搜索的字符串。此字符串的长度不应超过 255 个字节。

  • integer-expression   字符串中开始进行搜索的字符位置。第一个字符在位置 1。如果起始偏移是负值,则定位函数返回最后一个匹配字符串偏移而非第一个。负的偏移指示从搜索中排除字符串尾的多长一部分。排除的字节数计算公式为 (-1 * 偏移) -1。

返回值

INT

注释

如果指定了 integer-expression,则从字符串中的该偏移处开始搜索。

第一个字符串可以是长字符串(长于 255 个字节),但第二个字符串的长度不能超过 255 个字节。如果第二个参数是长字符串,此函数返回 NULL 值。如果未找到字符串,则返回 0。搜索零长度字符串将返回 1。如果有某个参数为 NULL,则结果为 NULL。

如果使用多字节字符,并具有适当的归类,则开始位置和返回值可能不同于字节 的位置。

此函数支持 NCHAR 输入和/或输出。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下语句返回值 8。

SELECT LOCATE(
   'office party this week - rsvp as soon as possible',
   'party',
   2 );

以下语句

BEGIN
   DECLARE STR LONG VARCHAR;
   DECLARE POS INT;
   SET str = 'c:\test\functions\locate.sql';
   SET pos = LOCATE( str, '\', -1 );
   select str, pos,
      SUBSTR( str, 1, pos -1 ) AS path,
      SUBSTR( str, pos +1 ) AS filename;
END;

返回以下输出:

str pos path filename
c:\test\functions\locate.sql 18 c:\test\functions locate.sql