请问怎样用把一列数据以“,”分割拆分成两列?
现有表 "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))