21

在其中一列中,我得到 2 个值,其间有分隔符 如何提取这两个值

我有类似这个专栏TRN02的东西115679-5757

我需要在分隔符之前和分隔符之后再次将值取为 2 个单独的列。

有人可以帮我吗

4

3 回答 3

39

您可以使用它SUBSTRING来执行此操作:

SELECT 
    SUBSTRING(TRN02, 0, CHARINDEX('-', TRN02)) AS [First]
    SUBSTRING(TRN02, CHARINDEX('-', TRN02)  + 1, LEN(TRN02)) AS [Second]
FROM TABLE
于 2013-10-23T16:23:34.187 回答
9

只是另一种方式使用LEFTRIGHT-

SELECT LEFT(TRN02, CHARINDEX('-', TRN02) - 1) [before_delim],
       RIGHT(TRN02, LEN(TRN02) - CHARINDEX('-', TRN02)) [after_delim]
FROM your_table
于 2013-10-23T17:02:11.970 回答
0
SELECT LEFT(details, CHARINDEX ('-', TRN02 ) - 1),
       SUBSTRING(details, CHARINDEX ('-', TRN02 ) + 1, 100) 
  FROM Your_table
于 2013-10-23T16:25:11.180 回答