Rozdzielenie ścieżki do pliku na ścieżkę i nazwę pliku

2 przydatne funkcje wycinające z pełnej ścieżki do pliku samą ścieżkę oraz nazwę pliku.

Przykładowa ścieżka "C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"  

1 z funkcji wycina ścieżkę:

  CREATE FUNCTION [dbo].[LTrimChar]
(
    @input nvarchar(MAX)
 )
RETURNS nvarchar(MAX)
AS
BEGIN
set @input = replace((SUBSTRING((@input),0,(len(@input)+1) - CHARINDEX('\',reverse(@input)))),'"','');
    RETURN @input;
END

 Druga samą nazwę pliku:

CREATE FUNCTION [dbo].[RTrimChar]
(
    @input nvarchar(MAX)
 )
RETURNS nvarchar(MAX)
AS
BEGIN
set @input = ltrim(rtrim(replace(REVERSE(SUBSTRING(reverse(@input),0,charindex('\',reverse(@input)))),'"','')));
RETURN @input;
END

Wynik działania w zapytaniu  

 

select Sciezka, RTrimChar(Sciezka) as 'Plik', LTrimChar(Sciezka) as 'Path' from FilePath

 Zwracam nam jako path C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client

i jako plik vpnui.exe kasując również znaki cudzysłowia