Tsql 需要列的特定部分作为其他列值
我需要使用下面字符串中的1005187069_0_A233-107400-1.pdf作为连接到平面文件源的ssis派生列转换中其他列值的一部分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
\\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
后面有一个逗号,而不是一个逗号。