如果有人可以提供一些帮助,请寻求帮助。我正在使用oracle数据库,我想修剪一个字符串直到某个字符' /'。这些字段是网址的路径,它们都是不同的大小,所以我需要确保它到达最后一个' /'在URL中并删除所有内容直到那一点。另外,有一个会话ID与这些URL中的一些相关联,这些URL位于字符串的末尾并且在它开始之前有一个分号,所以我想要删除包含分号的所有内容到semi_colon和on。所以基本上我想从URL的开头和URL的末尾删除内容(如果适用)。这些URL(字符串)的示例如下:
Current URLS
/ingaccess/jsp/mslogon.jsp
/ingaccess/help/helpie_term_cash_surrender_value.html
/eportal/logout.do;jsessionid=xr8co1kyebrve47xsjwmzw--.p704
/eportal/logout.do;jsessionid=gdh_e_e1m1hna0z9ednklg--.p705
/ingaccess/help/helpie_term_northern_unit_value.html
/ingaccess/help/helpie_scheduled_rebalance.html
/eportal/home.action;jsessionid=9vhfbkhunkvtcm5g1dtgsa--.p704
/ingaccess/help/helpie_catch_up_50.html
/ingaccess/piechartmaker
/ingaccess/help/helpie_term_fund_balance.html
Desired URLS
mslogon.jsp
helpie_term_cash_surrender_value.html
logout.do
logout.do
helpie_term_northern_unit_value.html
helpie_scheduled_rebalance.html
home.action
helpie_catch_up_50.html
piechartmaker
helpie_term_fund_balance.html
有人知道这里有一个简单的解决方法吗?我尝试过使用SUBSTR和REPLACE但似乎无法让它们工作。
提前感谢一大堆,
莱恩
答案 0 :(得分:0)
试试这个
SELECT CASE WHEN INSTR (surname,';')>0 THEN SUBSTR(surname,1
,INSTR(surname,';',1,1)-1) ELSE surname END FROM
(SELECT SUBSTR(column,INSTR(column,'/',-1)+1) AS surname
FROM tableName)
在Apex上测试
答案 1 :(得分:-1)
对不起,我应该仔细阅读。
首先尝试在分号前面获取字符串的左半部分:
substr := SUBSTR(str, 1, INSTR(str, ';')-1);
然后将该字符串的结尾添加到斜杠:
parsed := SUBSTR(substr, INSTR(substr, '/', -1)+1, LENGTH(substr));
应该这样做,但我没有测试,所以我不是正面的。
答案 2 :(得分:-2)
我相信你会想要分裂。首先使用分号分隔符,抓取结果的0索引,然后再使用斜杠分隔符获取结果,抓取结果的最后一个索引。
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)