请高人指教如何用sql语句拆分列
数据库版本:Sybase Adaptive Server Anywhere Database Engine Version 8.0.2.4122
数据表名称:A
数据表内容:
codedfyzje
——————————————
1002352012025.0000
10023620120215.0000
100237201202100.0000
1002382012024009.0000
10023920120210002.0000
本人菜鸟,我想用sql语句select 某条记录时将‘zje’列拆成多列(zje的字符长度不定,小数点前最多5位。以上需要用sql语句实现,不在程序中实现。),比如查找code=100235,那么想得到的结果是100235,201202,5,.,0,0,0,0
比如查找code=100239,那么想得到的结果是100239,201202,1, 0,0,0,2,.,0,0,0,0
求解。。。。
[解决办法]
貌似只能写存储过程来实现。
[解决办法]
生成辅助表,字段ID,内容1-100000,与工作表连接 ,拆分字符串后,再用变量累加的方法
得到结果
[解决办法]
//若小数点后都是四位
SELECT code+','+
dfy+','+
substring(zje,1,1)+','+
substring(zje,2,1)+','+
substring(zje,3,1)+','+
substring(zje,4,1)+','+
substring(zje,5,1)+','+
substring(zje,6,1)+','
FROM A
WHERE LENGTH(CONVERT(VARCHAR(10),zje))=6
union
SELECT code+','+
dfy+','+
substring(zje,1,1)+','+
substring(zje,2,1)+','+
substring(zje,3,1)+','+
substring(zje,4,1)+','+
substring(zje,5,1)+','+
substring(zje,6,1)+','+
substring(zje,7,1)
FROM DBA.hr_leave_record
WHERE LENGTH(CONVERT(VARCHAR(10),zje))=7
union
......
根据需要写成,就这个思路