将单列值拆分为多个列值时出现问题

时间:2011-02-28 17:05:00

标签: sql sql-server tsql

星期五我发布了一个关于将单个列值拆分为多个列值的问题我在那里遇到了somoe问题,现在在我的源表中我添加了一些新的feilds并且这个故事看起来像这样:

例如:

Name
---------------------      
abcd efgh      
ijk lmn     
opq  asd j. asdjja      
asb (asdfas) asd      
asd     
john  tronton III    
john    bradly  0    
user

并期望输出如下:

first_name             last_name  
-----------            ------------------
abcd                     efgh       
ijk                      lmn
opq                      asdjja      
asb                      asd      
asd                      null     
john                      tronton III    
john                      bradly    
null                      null (because user is not the name)

需要在Select语句中查询

中间名可以省略(不需要中间名)列已经创建,需要从单个“名称”列插入数据。

非常感谢,

Shahsra

2 个答案:

答案 0 :(得分:1)

你应该看看这个问题的答案......

Extracting First Name and Last Name

答案 1 :(得分:0)

;WITH Split_Names (Name, xmlname)
AS
(
    SELECT 
    Name,
    CONVERT(XML,'<Names><name>'  
    + REPLACE(Name,' ', '</name><name>') + '</name></Names>') AS xmlname
      FROM somenames
)

 SELECT       
 xmlname.value('/Names[1]/name[1]','varchar(100)') AS first_name,    
 xmlname.value('/Names[1]/name[2]','varchar(100)') AS last_name
 FROM Split_Names

并查看以下链接以供参考

http://jahaines.blogspot.in/2009/06/converting-delimited-string-of-values.html