gpt4 book ai didi

PostgreSQL 中的 SQL patindex 等价物

转载 作者:行者123 更新时间:2023-11-29 11:29:36 24 4
gpt4 key购买 nike

我需要相当于 SQL 函数的 Postgres 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

关于PostgreSQL 中的 SQL patindex 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43914647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com