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

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

2012-01-14 
怎样把一个文本字段里的字母和数字分解出来?有一表字段如下:代码名称 ...a001...a002...a003...b001...b00

怎样把一个文本字段里的字母和数字分解出来?
有一表字段如下: 
 代码 名称 ...
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

热点排行