如何用“空白”替换“测试”之前的所有内容? “测试”前面的子文件夹数量可能会有所不同。
C:\ AAA \ BBB \测试\ CCC \ DDD
我希望它是:
测试\ CCC \ DDD
答案 0 :(得分:2)
MSSQL中的解决方案,如果您正在使用另一个RDMBS,我确信它们具有PATINDEX / SUBSTRING的等效功能。
DECLARE @Path VARCHAR(8000)
,@Find VARCHAR(128)
SET @Path = 'C:\aaa\bbb\test\ccc\ddd'
SET @Find = 'Test\'
SELECT SUBSTRING(@Path,PATINDEX('%'+@Find+'%',@Path),LEN(@Path))
答案 1 :(得分:1)
您可以在String中获取字符串Text的索引,并从那里获取子字符串到最后。
答案 2 :(得分:0)
此查询应该适用于任何SQL - 如果需要,您可以添加合成修复。例如,在Oracle中,它将是SUBSTR / INSTR。
SELECT SUBSTR(str, start_pos) final_str
FROM
(
SELECT 'C:\aaa\bbb\test\ccc\ddd' as str
, INSTR('C:\aaa\bbb\test\ccc\ddd', 'test', 1) as start_pos
FROM dual
)
/
SQL>
FINAL_STR
-------------
test\ccc\ddd