Tsql 需要列的特定部分作为其他列值

Tsql 需要列的特定部分作为其他列值,tsql,ssis,Tsql,Ssis,我需要使用下面字符串中的1005187069_0_A233-107400-1.pdf作为连接到平面文件源的ssis派生列转换中其他列值的一部分 \\Hprweb001\ftp\u root\HRPFTP\Usr\MediConnect\InboundImages\1005187069\u 0\u A233-107400-1.pdf 我知道在子字符串函数的帮助下这是可能的,我尝试了: SUBSTRING( [Column 5] , 1, FINDSTRING( [Column 5] , " ",1

我需要使用下面字符串中的1005187069_0_A233-107400-1.pdf作为连接到平面文件源的ssis派生列转换中其他列值的一部分

\\Hprweb001\ftp\u root\HRPFTP\Usr\MediConnect\InboundImages\1005187069\u 0\u A233-107400-1.pdf

我知道在子字符串函数的帮助下这是可能的,我尝试了:

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

但这给了我一个错误。请提供帮助。

这是您需要的查询:

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))
      )
)
下面是一个示例,您可以看到它是如何工作的

另外,另一个更简单的版本是:

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

您可以使用运行此操作,并查看结果。

哪个错误?请提供。感谢您的快速响应和解决方案。但是,我希望在ssis中的派生列转换中使用此表达式。我修改了它,但仍然没有成功。非常感谢您的帮助。右(第5列,FINDSTRING(\),反向(第5列))-1@user2933406,问题是什么?你有错误吗?如果是这样的话,你可以用它发表评论。它不会解析。标题:Microsoft Visual Studio-----------------数据流任务[派生列[553]]处出错:分析表达式“REVERSE(子字符串(REVERSE([Column 5]),0,FINDSTRING('\',REVERSE,[Column 5])”失败。行号“1”、字符号“60”处的单引号是不应该的。@ChelChabiloGujrati在FINDSTRING函数中,在
REVERSE
后面有一个逗号,而不是一个逗号。