| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 669 人关注过本帖
标题:求助:一行如何结构不变情况拆分多行?
取消只看楼主 加入收藏
dhy793202
Rank: 1
等 级:新手上路
帖 子:29
专家分:4
注 册:2013-3-17
结帖率:75%
收藏
已结贴  问题点数:25 回复次数:2 
求助:一行如何结构不变情况拆分多行?
表的情况是
文件名       列1         列2
1          A1;A2        B1;B2
2           A3           B3
3         A4;A5;A6     D4;D5;D6
4           A7            D7
......


列1和列2的带分号数是一样的
现在要拆成
文件名       列1         列2
1           A1          B1
1           A2          B2
2           A3          B3
3           A4          D4
3           A5          D5
3           A6          D6
4           A7          D7


可以通过SCAN原始表的每一条记录,然后一条条添加到新表么?刚接触循环语句不太熟悉,请大家多多指教
搜索更多相关主题的帖子: 记录 如何 
2013-06-05 13:43
dhy793202
Rank: 1
等 级:新手上路
帖 子:29
专家分:4
注 册:2013-3-17
收藏
得分:0 
回复 4楼 sdta
6.0,所以ALLINS这个函数是不是用不了
我自己写了一段,较笨的法子,通用性不好,请提出一些修改思路
原文JC,生成文件JC-CF(结构同JC)
scan
 DO CASE occurs(';',列1)<>occurs(';',列2)
      INSERT INTO JC-CF VALUES(JC.文件名,JC.列1,JC.列2)
    CASE occurs(';',列1)=0
      INSERT INTO JC-CF VALUES(JC.文件名,JC.列1,JC.列2)
    CASE occurs(';',列1)=1
      INSERT INTO JC-CF VALUES(JC.文件名,JC.列1,SUBSTR(ALLTRIM(JC.列1),1,AT(';',ALLTRIM(JC.列1),1)-1),SUBSTR(ALLTRIM(JC.列2),1,AT(';',ALLTRIM(JC.列2),1)-1))
      INSERT INTO JC-CF VALUES(JC.文件名,JC.列1,SUBSTR(ALLTRIM(JC.列1),AT(';',ALLTRIM(JC.列1),1)+1),SUBSTR(ALLTRIM(JC.列2),AT(';',ALLTRIM(JC.列2),1)+1))
    CASE occurs(';',列1)=2
     。。。。。。
    CASE occurs(';',列1)=3
     。。。。。。
    CASE occurs(';',列1)=4
     。。。。。。
  ENDCASE   
 SELECT JC
endscan



提高通用性的问题
理想的是只变动前面的变量就能达到
1.是不是所有的字段都得设置成变量,换一个数据库后,字段数可能有变化,DO CASE下的还得改~
2.要是有好多个“;”得编好多层CASE,这块如何能有较好的循环
2013-06-05 18:44
dhy793202
Rank: 1
等 级:新手上路
帖 子:29
专家分:4
注 册:2013-3-17
收藏
得分:0 
多谢楼上
好多还没看懂,回头翻书再仔细琢磨琢磨
2013-06-05 20:33
快速回复:求助:一行如何结构不变情况拆分多行?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016275 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved