日期:2014-05-17 浏览次数:20660 次
DECLARE @s VARCHAR(30) SET @s='11111张三 22.22客户转账' SELECT SUBSTRING(@s,6,PATINDEX('%[^0-9][0-9]%',@s)-5) --姓名 SELECT SUBSTRING(@s,PATINDEX('%[^0-9][0-9]%',@s),6) --金额 SELECT SUBSTRING(@s,PATINDEX('%[^0-9][0-9]%',@s)+6,10) --备注
------解决方案--------------------
如果金额不固定
DECLARE @s VARCHAR(30) SET @s='11111张三 22.22客户转账' --1 SELECT SUBSTRING(SUBSTRING(@s,PATINDEX('%[^0-9][0-9]%',@s),15),0,PATINDEX('%[^0-9][吖-做]%',SUBSTRING(@s,PATINDEX('%[^0-9][0-9]%',@s),15))) --3 备注 SELECT REVERSE(SUBSTRING(REVERSE(@s),0,PATINDEX('%[0-9]%',REVERSE(@s))))
------解决方案--------------------
我做过银行报文。
是在外部程序端实现解析。不要在数据库层实现。
------解决方案--------------------
数据从这两串数提取?
你先手动拆开一个示例,我们试试能不能用sql实现
你的两行数我都没能和你的字段对应上,你的数据格式还算严格,应该可以提取
------解决方案--------------------