mysql for Postgresql中常见的PATINDEX函数

mysql for Postgresql中常见的PATINDEX函数,mysql,sql,postgresql,Mysql,Sql,Postgresql,mysql for postgresql的PATINDEX有什么熟悉的函数吗。我正试图在postgres中创建这样的sql SELECT PATINDEX('%schools%', 'W3Schools.com'); 这会引发错误: 没有与给定名称和参数类型匹配的函数。你可能需要 添加显式类型转换的步骤 更详细地说,我试图在Postgresql中获得字符串的数字部分和字符串部分。我发现这样的例子: SELECT Section FROM dbo.Section ORDER BY LEFT(Se

mysql for postgresql的PATINDEX有什么熟悉的函数吗。我正试图在postgres中创建这样的sql

SELECT PATINDEX('%schools%', 'W3Schools.com');
这会引发错误:

没有与给定名称和参数类型匹配的函数。你可能需要 添加显式类型转换的步骤

更详细地说,我试图在Postgresql中获得字符串的数字部分和字符串部分。我发现这样的例子:

SELECT Section
FROM dbo.Section
ORDER BY LEFT(Section, PATINDEX('%[0-9]%', Section)-1), -- alphabetical sort
         CONVERT(INT, SUBSTRING(Section, PATINDEX('%[0-9]%', Section), LEN(Section))) -- numerical

有两种实现方法,示例如下:

postgres=# select strpos('W3Schools.com','Schools');
 strpos 
--------
      3
(1 row)

postgres=# select position('Schools' in 'W3Schools.com');
 position 
----------
        3
(1 row)

postgres=# select regexp_matches('hahahabc123zzz', '(abc)(123)');
 regexp_matches 
----------------
 {abc,123}

postgres=# select array_to_string(regexp_matches('hahahabc123zzz', '(abc)(123)'),' ');
 array_to_string 
-----------------
 abc 123

postgres=# select (regexp_matches('hahahabc123zzz', '(abc)(123)'))[1] as a, (regexp_matches('hahahabc123zzz', '(abc)(123)'))[2] as b;
  a  |  b  
-----+-----
 abc | 123
(1 row)
你想要这个吗? 您可以在这里获得字符串处理的所有函数:

您可以尝试函数:

SELECT POSITION('schools' in 'W3Schools.com');

对不起,我编辑了这个问题。你能再给我一个吗answer@NguyenHoangVu-K11FUGHCM我希望您需要
regexp\u matches()
对不起,我编辑了这个问题。你能再给我一个吗answer@NguyenHoangVu-K11FUGHCM那么你想得到一个子字符串吗?你能给出一些示例数据吗?abc123,我需要将“abc”和“123”分开。谢谢你有字符串路径的正则表达式吗?我发现数值路径(\d+)“abc123”只是一个例子^^^,但感谢您对regexp_匹配的帮助。我正在努力