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

时间:2013-10-29 18:43:37

标签: tsql ssis

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

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

我知道有可能在substring函数的帮助下尝试了:

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

但它给了我一个错误。请帮忙。

1 个答案:

答案 0 :(得分: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运行此功能,并查看结果。