2016-10-21 4 views
-1

가변 파일 경로가 지정된 파일 이름을 추출하려고합니다. 어떤 경로 예 :파일 경로에서 파일 이름을 추출하는 방법

C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\CentralDB.mdf 

C:\MSSQL\DATA\CentralDB.mdf 

C:\DATA\CentralDB.mdf 

아웃 예상 넣어은 즉, 파일 이름 만해야한다 :

CentralDb.mdf CentralDB.ldf

파일 경로 길이는 위치에 폼 위치를 다를 수 있습니다.

+3

[좋은 질문이 있습니까?] (http://stackoverflow.com/help/how-to-ask) - 질문에 어떤 종류의 문맥이나 설명이 부족합니다. 뭘 하려는지 - 매우 불분명하고, 혼란 스럽네 - 이걸 개선 할 필요가있어! –

+0

매우 명확하지 않다. 달성하고자하는 것은 ... 경로를 받고 mdf 파일 이름 만 반환하는 sql 함수를 만들고 싶습니까? – Hackerman

+0

'DECLARE @t TABLE ( val VARCHAR (8000) ); INSERT INTO @t (val) VALUES ('C : \ Program Files \ Microsoft SQL Server \ MSSQL12.MSSQLSERVER \ MSSQL \ DATA \ CentralDB.mdf'); INSERT INTO @t (val) VALUES ('C : \ MSSQL \ DATA \ CentralDB.mdf'); INSERT INTO @t (val) VALUES ('C : \ DATA \ CentralDB.mdf'); 선택 오른쪽 (val, CHARINDEX ('\', REVERSE (val)) - 1) FROM @t에서 ' –

답변

4

문자열의 역순으로 첫 번째 '\'를 찾은 다음 그 오른쪽 값을 사용할 수 있습니다.

declare @var varchar(4000) 

set @var = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\CentralDB.mdf' 
select RIGHT(@var,CHARINDEX('\',REVERSE(@var))-1) 

set @var = 'C:\DATA\CentralDB.mdf' 
select RIGHT(@var,CHARINDEX('\',REVERSE(@var))-1) 

set @var = 'C:\MSSQL\DATA\CentralDB.mdf' 
select RIGHT(@var,CHARINDEX('\',REVERSE(@var))-1) 
+1

예제를 사용하십시오. '선택 오른쪽 (physical_name, CHARINDEX ('\', 역 (physical_name)) - 1) From Sys.database_files' –

관련 문제