「テスト」の前のすべてを空白に置き換えるにはどうすればよいですか?「テスト」の前のサブフォルダーの数は異なる場合があります。
C:\ aaa \ bbb \ test \ ccc \ ddd
私はそれをしたい:
test \ ccc \ ddd
「テスト」の前のすべてを空白に置き換えるにはどうすればよいですか?「テスト」の前のサブフォルダーの数は異なる場合があります。
C:\ aaa \ bbb \ test \ ccc \ ddd
私はそれをしたい:
test \ ccc \ ddd
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))
文字列内の文字列Textのインデックスを取得し、そこから最後まで部分文字列を取得できます。
このクエリはどの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