输入数据:
abcdef_fhj_viji.dvc
预期输出:
fhj_viji.dvc
需要修剪的部分不是固定的。
使用REPLACE方法
Select REPLACE('abcdef_fhj_viji.dvc','abcde','')
如果您想对您的表格使用此查询:
Select REPLACE(column,'abcde','') from myTable
更新:
UPDATE TABLE
SET column = REPLACE(column,'abcde','')
REPLACE('abcdef_fhj_viji.dvc','abcde')。 - undefinedselect substr('abcdef_fhj_viji.dvc',instr('abcdef_fhj_viji.dvc','_')+1) from dual
所以,一切都取决于INSTR函数,定义从哪个位置和哪个出现次数开始,您将获得索引并将该索引传递给SUBSTR以获取您的字符串。
由于您没有提供太多信息,我会做一些假设。
假设您想要删除某个字符串的前缀。使用正则表达式是一个不错的方法。有一个名为regexp_replace的函数,可以根据模式查找字符串的子字符串,并将其替换为不同的字符串。在PL/SQL中,您可以编写一个使用regexp_replace的函数,如下所示:
function deletePrefix(stringName in varchar2) return varchar2 is
begin
return regexp_replace(stringName, '^[a-zA-Z]+_', '');
end;
或者直接在普通的 SQL 语句中使用:
regexp_replace(stringName, '^[a-zA-Z]+_', '');
stringName 是你想要处理的字符串,而 ^[a-zA-Z]+_ 部分取决于前缀包含哪些字符。这里我只包括了大写和小写字母。
abcdef_?前7个字符?如果是Abcdef_fhj_viji.dvc呢? 如果是abcdef_abcdef_fhj_viji.dvc呢?请明确说明。 - Jeffrey Kemp