2013-01-15 129 views
0

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

这是一个示例数值的:

1234-56-78 

我想拆分,所以我有三列

1234 | 56 | 78 

我怎样才能做到这一点

+1

尝试谷歌,你可以找到这样的:http://stackoverflow.com/questions/697519/split-function-equivalent-in-tsql –

+0

三列排或三排?不清楚 – Kaf

+0

三列,如上所述。我只在这个例子中列出了它,因为我不知道如何使用这里的工具来创建表格等等,但是它会是Col1(1234)Col2(56)和Col3(78)。我希望有所帮助。 –

回答

0

试试这个(?);

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