首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教怎样用把一列数据以“,”分割拆分成两列

2012-03-14 
请问怎样用把一列数据以“,”分割拆分成两列?现有表M_users 想把其中的M_Users_livecity 列以“,”分风格

请问怎样用把一列数据以“,”分割拆分成两列?
现有表     "M_users "         想把其中的     "M_Users_livecity "列以“,”分风格存放成两列,如:    
M_Users_livecity            
广东,广州            
湖北,宜昌            
安徽,铜县            
浙江,杭州            
黑龙江,沿边地区    
......    
 
希望存成province与city两列:            
province                                             city            
广东                                                     广州            
湖北                                                     宜昌            
安徽                                                     铜县            
浙江                                                     杭州            
黑龙江                                                 沿边地区    
......  

注:我用的是ACCESS数据库。

[解决办法]
create table M_users
(M_Users_livecity varchar(50))
insert into M_users
select '广东,广州 '
union all
select '湖北,宜昌 '
union all
select '安徽,铜县 '
union all
select '浙江,杭州 '
union all
select '黑龙江,沿边地区 '


select
substring(M_Users_livecity,1,charindex( ', ',M_Users_livecity)-1) as province,
substring(M_Users_livecity,charindex( ', ',M_Users_livecity)+1,len(M_Users_livecity)) as city
from M_users

结果:
-------------
广东广州
湖北宜昌
安徽铜县
浙江杭州
黑龙江沿边地区

[解决办法]
o?
我也不知道access里面是否有substring
那么用left 和 right试试看呢?


select
left(M_Users_livecity,charindex( ', ',M_Users_livecity)-1) as province,
right(M_Users_livecity,(len(M_Users_livecity)-charindex( ', ',M_Users_livecity))) as city
from M_users
[解决办法]
access不能直接用SQL来完成,建议用MSSQL来操作,可以用以下命令完成(首先创建好province与city字段):

update M_users set province=substring(M_Users_livecity,0,charindex( ', ',M_Users_livecity)-1)
update M_users set city=rtrim(substring(M_Users_livecity,charindex( ', ',M_Users_livecity)+1,100))

热点排行