在 PostgreSQL 中从字符串末尾查找子字符串位置

avi*_*avi 2 sql postgresql

我有这个查询来查找子字符串的位置。

select position('-' || lower('i') in lower('GFT-iMB5-i'))
Run Code Online (Sandbox Code Playgroud)

(这是一个实际使用函数变量来替换字符串的示例)

此次回归4

简而言之,我希望它从字符串的末尾开始,而不是从开头开始。意思是我想得到:9

我怎样才能做到这一点?

Gor*_*off 5

一种方法是反转值并以这种方式进行比较:

select length('GFT-iMB5-i') - position(reverse('-' || lower('i')) in reverse(lower('GFT-iMB5-i')))
Run Code Online (Sandbox Code Playgroud)