PostgreSQL中的SQL patindex等价物

我需要Postgres相当于sql函数 patindex

解决方法

没有完全等同于sql Server的PATINDEX函数.您可以根据需要使用其他字符串函数.这是文档: https://www.postgresql.org/docs/current/static/functions-string.html

但是如果你需要完全相同的功能,你可以编写一个“包装器”,如下所示:

CREATE OR REPLACE FUNCTION "patindex"( "pattern" VARCHAR,"expression" VARCHAR ) RETURNS INT AS $BODY$
SELECT
    COALESCE(
        STRPOS(
             $2,(
                SELECT
                    ( REGEXP_MATCHES(
                        $2,'(' || REPLACE( REPLACE( TRIM( $1,'%' ),'%','.*?' ),'_','.' ) || ')','i'
                    ) )[ 1 ]
                LIMIT 1
            )
        ),0
    )
;
$BODY$LANGUAGE 'sql' IMMUTABLE;

例:

SELECT patindex( '%e_t%','Test String' );

2

SELECT patindex( '%s_r%','Test String' );

6

SELECT patindex( '%x%','Test String' );

0

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...