我正在尝试更新字符串,但我还需要删除找到的字符串后面的其余值。我不能使用替换,因为最后的值会改变,但中间部分对于许多记录将保持不变。如果您不知道字符串中的确切值或位置,我还没有看到删除字符串尾部的帖子。
我通过SQL Developer使用Oracle作为我的数据库来更新数据。
"keep this data" "search on keyword" "wipe out trailing data" "result data"
xyz @ psu.edu xyz
列数据值= xyz@psu.edu
我会搜索列名为'@%'
的记录删除“@%”
最终结果值= xyz
列数据值= ABCabc123
我会搜索列名为'abc%'
的记录删除“abc%”
最终结果值= ABC
我没有看到此类更新的任何答案。请帮忙!
答案 0 :(得分:0)
select substr('xyz@psu.edu',1, instr('xyz@psu.edu','@') - 1) from dual
select substr('ABCabc123',1, instr('ABCabc123','abc') - 1) from dual
答案 1 :(得分:0)
您可能需要检查是否找不到所需的字符串:
SELECT CASE
WHEN INSTR('xyz@psu.edu','@', 1, 1) > 0
THEN SUBSTR('xyz@psu.edu',1,INSTR('xyz@psu.edu','@', 1, 1)-1)
ELSE 'xyz@psu.edu'
END as "Result Data"
FROM DUAL