加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL中的SQL patindex等价物

发布时间:2020-12-13 16:09:23 所属栏目:百科 来源:网络整理
导读:我需要Postgres相当于SQL函数 patindex 解决方法 没有完全等同于SQL Server的PATINDEX函数.您可以根据需要使用其他字符串函数.这是文档: https://www.postgresql.org/docs/current/static/functions-string.html 但是如果你需要完全相同的功能,你可以编写一
我需要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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读