当前位置: 代码迷 >> Sql Server >> 怎样把一个文本字段里的字母和数字分解出来?解决方法
  详细解决方案

怎样把一个文本字段里的字母和数字分解出来?解决方法

热度:81   发布时间:2016-04-27 18:39:32.0
怎样把一个文本字段里的字母和数字分解出来?
有一表字段如下: 
 代码 名称 ...
a001 ... 
a002 ... 
a003 ... 
b001 ... 
b002 ... 
zc001 ...
我怎么才能把[代码]字段分解为两个字段()
 代码 前缀 数值 名称 ...
a001 a 1 ... ...
a002 a 2 ... ...
a003 a 3 ... ...
b001 b 1 ... ...
b002 b 2 ... ...
zc001 zc 1 ... ...

LEFT([代码], 1) AS 前缀, CAST(RIGHT([代码], 3) AS int) AS 数值

我用以上方法做了,但有几个问题:
1、代码字段的前缀字母位数不确定怎么办,比如有的1个字母有的2或3个?
2、代码字段的数值部份位数不确定怎么办?有没有办法处理那样的情况?
谢谢!


------解决方案--------------------
SQL code
--> 测试数据: #Tif object_id('tempdb.dbo.#T') is not null drop table #Tcreate table #T (代码 varchar(5),名称 varchar(3))insert into #Tselect 'a001','...' union allselect 'a002','...' union allselect 'a003','...' union allselect 'b001','...' union allselect 'b002','...' union allselect 'zc001','...'goselect 代码,left(代码,patindex('%[0-9]%',代码)-1) 前缀from #Tgodrop table #T/*代码    前缀----- -----a001  aa002  aa003  ab001  bb002  bzc001 zc(6 row(s) affected)*/
------解决方案--------------------
mark
  相关解决方案