gpt4 book ai didi

sql - Instr - 最后一个字符的最后索引

转载 作者:行者123 更新时间:2023-12-02 00:05:17 25 4
gpt4 key购买 nike

我正在使用 Oracle 11g 数据库,我想找到字符串最后一个字符的位置。

例如:

"City=Amsterdam"

本例中的字符串是“City=”,我想得到“=”的位置。我知道 INSTR(Input,'City=', 1, 1)+4 会有点用,但我正在寻找另一种方法。

编辑:基本上我想使用 substr 函数来提取“Amsterdam”。但是 select 语句应该尽可能干净。

我忘记说了,这个字符串不仅包含“City=Amsterdam”,还包含“Customer=124”

"City=Amsterdam"; "Customer=124"

最佳答案

INSTR('City=Amsterdam', '=', -1)

开始位置使用-1!

根据您的评论,回答 2

select SUBSTR( input, INSTR(input, '=', -1)+1 ) as city 
from yourTable;

如果您在 customer=... 之前或之后有更多字段,您可以这样做:

select substr(input, 
INSTR(input,'City=')+5,
INSTR(input,'"', INSTR(input,'City='))-INSTR(input,'City=')-5
) as city from city;

还有一些“花哨的”查询,评论并使其与其他领域更加灵活......

select substr(c.input, c.citystart, c.cityend - c.citystart) as city
from (
select input as input,
INSTR(input,'City=')+5 as citystart,
INSTR(input,'"', INSTR(input,'City=')) as cityend
from city) c;

测试数据:

create table city (input char(64));

insert into city values('"City=Amsterdam"; "Customer=124"');

insert into city values('"Customer=11"; "City=USA"');

insert into city values('"Tel=+00"; "City=China"; "Customer=1"');

insert into city values('"Tel=+00"; "Post=11111"; "Customer=333"; "City=Canada"');

查看更新 SQLFIDDLE:

关于sql - Instr - 最后一个字符的最后索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800589/

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