0

「テスト」の前のすべてを空白に置き換えるにはどうすればよいですか?「テスト」の前のサブフォルダーの数は異なる場合があります。

C:\ aaa \ bbb \ test \ ccc \ ddd

私はそれをしたい:

test \ ccc \ ddd

4

3 に答える 3

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))

http://sqlfiddle.com/#!3/d41d8/8576

于 2013-02-07T18:29:01.773 に答える
1

文字列内の文字列Textのインデックスを取得し、そこから最後まで部分文字列を取得できます。

于 2013-02-07T18:22:06.083 に答える
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
于 2013-02-07T18:30:03.993 に答える