星期五我发布了一个关于将单个列值拆分为多个列值的问题我在那里遇到了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
答案 0 :(得分:1)
你应该看看这个问题的答案......
答案 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