我在表中有一个列,其中包含用连字符分隔的数字数据。我需要将此数据拆分为三列,因此该数值的每个部分都位于单独的列中。具体数据用于学习目的,但我也看到数据库名称字段是一列而不是三列(例如“FirstMiddleLast”而不是“First”、“Middle”、Last”)。
以下是数值示例:
1234-56-78
我想拆分它,所以我有三列
1234 | 56 | 78
我怎样才能做到这一点?
我在表中有一个列,其中包含用连字符分隔的数字数据。我需要将此数据拆分为三列,因此该数值的每个部分都位于单独的列中。具体数据用于学习目的,但我也看到数据库名称字段是一列而不是三列(例如“FirstMiddleLast”而不是“First”、“Middle”、Last”)。
以下是数值示例:
1234-56-78
我想拆分它,所以我有三列
1234 | 56 | 78
我怎样才能做到这一点?
试试这个(这里是 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