VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

LOCATE

功能描述

LOCATE函数用于查找子字符串在原字符串中的位置。

函数返回值如下所示:

  • 0:子字符串不在原字符串中。
  • 非0值:子字符串在原字符串的位置,以1为起始。

如果输入值存在null时,则函数返回null。

语法格式

LOCATE(substr,str [,pos])

参数说明

  • substr

    子字符串。

  • str

    原字符串。

  • pos

    原字符串开始查找的位置,以1为起始,当pos参数给出时,则从pos位置开始。如果pos值小于1,则结果返回0。当pos有小数时,pos取值为整数值加1,例如locate('a','nbabaaa',4.5),表示从第5个字符开始搜索字符a在'nbabaaa'中的位置。

注意事项

仅Vastbase G100 V2.2 Build 10(Patch No.8)及以后版本支持此功能。

示例

示例1:直接调用LOCATE函数。

  • 指定pos参数。

    --正整数
    select locate('a','nbanaa',4);
    --负数
    select locate('a','nba',-4);
    --小数
    select locate('a','nbabaaa',4.5);
    

    返回结果分别为:

      locate
      --------
            5
      (1 row)
    
      locate
      --------
            0
      (1 row)
    
      locate
      --------
            5
      (1 row)
    
  • 不指定pos参数。

    select locate('ABC','KJABCFG');
    

    返回结果为:

      locate
      --------
            3
      (1 row)
    

示例2:在函数中使用LOCATE函数。

1、创建函数。

create or replace function fun_1116772(a in char(16),b in char(16),n out int)return int
as
begin
select locate(a,b) into n;
return n;
end;
/

2、调用函数pro_1116772。

select fun_1116772('ABV','HBABV');

返回结果为:

 fun_1116772
-------------
           3
(1 row)