如何将字符串分成3列

时间:2010-10-22 20:58:38

标签: sql sql-server sql-server-2005

我有一列用户名。

他们如下:

'first       last      middleinitial'

请注意名称部分之间的大空格 这些空格总是不同的空格数

问题:

我如何将first,last和middleinitial分成单独的列(即使每个名称的空格不同)?

1 个答案:

答案 0 :(得分:3)

WITH t AS
(
    SELECT 'first       last      middleinitial' AS name
)

SELECT 
LEFT(name,CHARINDEX(' ', name)-1) 
,RIGHT(name, CHARINDEX(' ', REVERSE(name))-1)
,LTRIM(RTRIM(SUBSTRING(name,CHARINDEX(' ', name),LEN(name)- CHARINDEX(' ', REVERSE(name))-CHARINDEX(' ', name))))
FROM t