标题:如何根据表一内容修改表二字段名 -----求高手指点
只看楼主
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用qshuju在2014-7-9 21:36:33的发言:

我意见是:SELECT  DISTINCT 表一.科目 from 表一.dbf into table xxx
把表一中的科目不重复的写入到一个表,然后根据这个表的记录(DISTINCT不会有重复的)新建字段,
然后再用SQL语句将所需要的记录查询出来inset into 新表中。

也是解决方法之一。

活到老,学到老! http://www. E-mail:hu-jj@
2014-07-10 07:43
liuxingang28
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山东济南
等 级:贵宾
威 望:47
帖 子:649
专家分:2156
注 册:2014-2-7
得分:3 
需要指出的是:表字段名不可能是纯数字,这是基本常识,楼主的“表二”是不存在的。可在数字前加字母或下划线作为字段名。
修改表结构,应该使用 Alter Table 命令。假设表2的字段是 _01、_02、03,可参考如下代码:
程序代码:
use 表2 excl in 0
select dist 成绩,科目 from 表1 into cursor curTmp
scan
    cFieldName1 = '_' + allt(成绩)
    cFieldName2 = allt(科目)
    select 表2
    if type(cFieldName1) # 'U'
        alter table 表2 rename (cFieldName1) to (cFieldName2)
    endif
endscan


泉城飞狐
2014-07-10 08:28
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用liuxingang28在2014-7-10 08:28:50的发言:

需要指出的是:表字段名不可能是纯数字,这是基本常识,楼主的“表二”是不存在的。可在数字前加字母或下划线作为字段名。
修改表结构,应该使用 Alter Table 命令。假设表2的字段是 _01、_02、03,可参考如下代码:
use 表2 excl in 0
select dist 成绩,科目 from 表1 into cursor curTmp
scan
    cFieldName1 = '_' + allt(成绩)
    cFieldName2 = allt(科目)
    select 表2
    if type(cFieldName1) # 'U'
        alter table 表2 rename (cFieldName1) to (cFieldName2)
    endif
endscan
不可能存在的字段名表也是不存在的。据我理解,楼主仅仅是举例说明而已,我们不必过于计较。

活到老,学到老! http://www. E-mail:hu-jj@
2014-07-10 17:33
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
所以我回帖也是仅给思路或方法,没有直接给代码,否则可能会引起误导。

活到老,学到老! http://www. E-mail:hu-jj@
2014-07-10 17:35
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用liuxingang28在2014-7-10 08:28:50的发言:

需要指出的是:表字段名不可能是纯数字,这是基本常识,楼主的“表二”是不存在的。可在数字前加字母或下划线作为字段名。
修改表结构,应该使用 Alter Table 命令。假设表2的字段是 _01、_02、03,可参考如下代码:
use 表2 excl in 0
select dist 成绩,科目 from 表1 into cursor curTmp
scan
    cFieldName1 = '_' + allt(成绩)
    cFieldName2 = allt(科目)
    select 表2
    if type(cFieldName1) # 'U'
        alter table 表2 rename (cFieldName1) to (cFieldName2)
    endif
endscan


哪位高手解释一下,红色一句的意思 。谢谢!

只求每天有一丁点儿的进步就可以了
2018-03-27 11:22
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
以下是引用liuxingang28在2014-7-10 08:28:50的发言:

需要指出的是:表字段名不可能是纯数字,这是基本常识,楼主的“表二”是不存在的。可在数字前加字母或下划线作为字段名。
修改表结构,应该使用 Alter Table 命令。假设表2的字段是 _01、_02、03,可参考如下代码:
use 表2 excl in 0
select dist 成绩,科目 from 表1 into cursor curTmp
scan
    cFieldName1 = '_' + allt(成绩)
    cFieldName2 = allt(科目)
    select 表2
    if type(cFieldName1) # 'U'
        alter table 表2 rename (cFieldName1) to (cFieldName2)
    endif
endscan


哪位高手解释一下,红色一句的意思 。谢谢!

只求每天有一丁点儿的进步就可以了
2018-03-27 11:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433825-1-1.html




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

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