日期:2014-05-16  浏览次数:20611 次

SQL语句 将一个字段分为两个字段
字段A
100*200*10*20/12m
110*210*10*30/6m
500*300*15*16/300m
7000*8000*20*25/2000m

现在需要把“/”两边的数分别存到两个字段B和C,并且去掉最后“m”,如下:
B                    C
100*200*10*20        12
110*210*10*30        6
500*300*15*16        300
7000*8000*20*25      2000

请问如何实现?


------解决方案--------------------
select
   parsename(replace(a,'/','.'),2) as b,
   replace(parsename(replace(a,'/','.'),1),'m','') as c
from 
  tb

------解决方案--------------------

create table sh
(字段A varchar(100))

insert into sh
 select '100*200*10*20/12m' union all
 select '110*210*10*30/6m' union all
 select '500*300*15*16/300m' union all
 select '7000*8000*20*25/2000m'


select substring(字段A,1,patindex('%/%m',字段A)-1) 'B',
       replace(substring(字段A,patindex('%/%m',字段A)+1,100),'m','') 'C'
 from sh

/*
B                              C
------------------------------ ----------------
100*200*10*20                  12
110*210*10*30                  6
500*300*15*16                  300
7000*8000*20*25                2000

(4 row(s) affected)
*/