2013-10-29 85 views
0

我需要使用1005187069_0_A233-107400-1.pdf從下面的字符串作爲我的其他列值的一部分ssis派生列轉換連接到平面文件源。需要列的特定部分作爲其他列值

\\Hprweb001\ftp_root\HRPFTP\Usr\MediConnect\InboundImages\1005187069_0_A233-107400-1.pdf

我知道這是可能的子功能的幫助下,我嘗試:

SUBSTRING([Column 5] , 1, FINDSTRING([Column 5] , " ",1)-FINDSTRING([Column 5] , "\",8)+1) 

但它給我一個錯誤。請幫忙。

+1

哪個錯誤?請提供。 – DontVoteMeDown

回答

2

這是查詢,你需要:

DECLARE @text NVARCHAR(MAX) 
SET @text = '\Hprweb001\ftp_root\HRPFTP\Usr\MediConnect\InboundImages\1005187069_0_A233-107400-1.pdf' 

SELECT 
    REVERSE(
    SUBSTRING(
     REVERSE(@text), 
     0, 
     CHARINDEX('\', REVERSE(@text)) 
    ) 
) 

這裏是一個SQLFiddle所以你可以看到它是如何工作

此外,另一個簡單的版本是:

SELECT RIGHT(@text, CHARINDEX('\' ,REVERSE(@text))-1) 

您可以使用this SQLFiddle運行此操作,並查看結果。

+0

感謝您的快速響應和解決方案。但是,我想在ssis的派生列轉換中使用此表達式。我修改了它,但仍然沒有成功。任何幫助是極大的讚賞。 RIGHT(第5列,FINDSTRING(「\」,REVERSE(第5列)) - 1) – ChelChabiloGujrati

+0

@ user2933406問題是什麼?你有錯誤嗎?如果是這樣,你可以發表評論。 –

+0

它不解析。 TITLE:Microsoft Visual Studio ------------------------------ 數據流任務[派生列[553]]時出錯:解析表達式「REVERSE(SUBSTRING(REVERSE([Column 5]),0,FINDSTRING('\',REVERSE,[Column 5])))」失敗。行號爲「1」的單引號,字符數爲「60」,沒有預料到。 – ChelChabiloGujrati

相關問題