+ -
当前位置:首页 → 问答吧 → 如何用SQL实现带分隔符的不规则编码分列

如何用SQL实现带分隔符的不规则编码分列

时间:2011-01-29

来源:互联网

KMNO KM1 KM2 KM3 KM4 KM5 KM6
411-02-43-B2-3-1 411 02 43 B2 3 1
编码如:411-02-43-B2-3-1,有分隔符"-"连接,如何用SQL语句(不用VBA)实现分列.效果如表格所示.

附件

不规则编码.rar(15.68 KB)

2011-1-29 13:18, 下载次数: 2

作者: xmirage   发布时间: 2011-01-29

SELECT ID.[KMNO], IIf(InStr(1,Replace([KMNO] & "-","-","@",1,0),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,0),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,0),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,0),"@")-1)) AS 表达式1, IIf(InStr(1,Replace([KMNO] & "-","-","@",1,1),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,1),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,1),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,1),"@")-1)) AS 表达式2, IIf(InStr(1,Replace([KMNO] & "-","-","@",1,2),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,2),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,2),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,2),"@")-1)) AS 表达式3, IIf(InStr(1,Replace([KMNO] & "-","-","@",1,3),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,3),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,3),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,3),"@")-1)) AS 表达式4, IIf(InStr(1,Replace([KMNO] & "-","-","@",1,4),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,4),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,4),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,4),"@")-1)) AS 表达式5, IIf(InStr(1,Replace([KMNO] & "-","-","@",1,5),"-")=0,"",Mid([KMNO],InStrRev(Replace([KMNO] & "-","-","@",1,5),"@")+1,InStr(1,Replace([KMNO] & "-","-","@",1,5),"-")-InStrRev(Replace([KMNO] & "-","-","@",1,5),"@")-1)) AS 表达式6
FROM ID;

作者: zez   发布时间: 2011-01-29

热门下载

更多