怎样把一个文本字段里的字母和数字分解出来?
有一表字段如下:
代码 名称 ...
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、代码字段的数值部份位数不确定怎么办?有没有办法处理那样的情况?
谢谢!
[解决办法]
--> 测试数据: #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