2013-07-18 34 views
1

如果模式如下所示,如何在PL/SQL中拆分字符串以获取最后一个值? :PL/SQL拆分字符串,获取最后一个值?

“1; 2”,在这种情况下,我想要的值将是2。

注:分离器是字符“;”和值是不同的长度,如'1; 2或123; 45678等...'

在此先感谢!

+0

你需要在存储过程或在普通的SQL? (对于存储过程,PL/SQL仅为**) –

回答

1

你应该首先找到位置;使用,

instr(string,';',1,1) 

然后使用SUBSTR函数提取由比以前功能找到的值的一个更开始的值。

select substr(string,instr(string,';',1,1) + 1) from table; 
+0

感谢您的回复。你能解释'FROM TABLE'部分吗?另外,如何将值存储在变量中? – SlashJ

+0

我假设这些字符串存储在一个表中。如果您从表格中选择,然后编写适当的表格名称。 – Noel

8
SELECT SUBSTR(column_name, 
       INSTR(column_name, ';', -1) + 1) 
    FROM table_name 

应该工作。这是一个SQL Fiddle example

+0

棒极了!完美的作品 –

0

在你的情况下,你可以使用instr和-1开始位置和Substr。

pos := instr(searchIn, ';', -1, 1) 
res := substr(searchIn, pos + 1) 

这应该工作,如果没有......这是必须做的

4
regexp_substr(your_string, '[^;]*$') 
相关问题