0

我在表中有一个列,其中包含用连字符分隔的数字数据。我需要将此数据拆分为三列,因此该数值的每个部分都位于单独的列中。具体数据用于学习目的,但我也看到数据库名称字段是一列而不是三列(例如“FirstMiddleLast”而不是“First”、“Middle”、Last”)。

以下是数值示例:

1234-56-78

我想拆分它,所以我有三列

1234 | 56 | 78

我怎样才能做到这一点?

4

1 回答 1

0

试试这个(这里是 Sql Fiddle);

declare @s varchar(50)='1234-56-78'

select left(@s,charindex('-',@s,1)-1) Col1,
       substring(@s,charindex('-',@s,1)+1, len(@s)-charindex('-',reverse(@s),1)-
       charindex('-',@s,1)) Col2,
       right(@s,charindex('-',reverse(@s),1)-1) Col3

--results
Col1    Col2    Col3
1234    56      78
于 2013-01-15T17:21:56.680 回答