SQL语句拆分表中内容,并变成两列
如何通过sql语句,把一列中的数据读出来,并把字母和数字分开,变成两列,比如:
Column1
A123
B23
BD21
拆分后变为:
Col1 Col2
A 123
B 23
BD 21 sql 拆分数据列
[解决办法]
try
select
col1=left(Column1,patindex('%[0-9]%',Column1)-1),
col2=substring(Column1,patindex('%[0-9]%',Column1),len(Column1)-patindex('%[0-9]%',Column1)+1)
from tb
select
col1=CASE WHEN patindex('%[0-9]%',Column1)=0 THEN Column1 ELSE left(Column1,patindex('%[0-9]%',Column1)-1) END,
col2=substring(Column1,patindex('%[0-9]%',Column1),len(Column1)-patindex('%[0-9]%',Column1)+1)
from tb
create table mg
(Column1 varchar(10))
insert into mg
select 'A123' union all
select 'B23' union all
select 'BD21'
select substring(Column1,1,patindex('%[0-9]%',Column1)-1) 'Col1',
substring(Column1,patindex('%[0-9]%',Column1),10) 'Col2'
from mg
/*
Col1 Col2
---------- ----------
A 123
B 23
BD 21
(3 row(s) affected)
*/