| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:用replace语句行不行?
只看楼主 加入收藏
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
用replace语句行不行?
岗位分类表.rar (6.64 KB)

如何把年龄字段里的记录都加1,并且后面对应的年龄分布阶段变为1?例如:
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 Kerberos 于 2014-1-17 09:50 编辑 ]
搜索更多相关主题的帖子: replace 如何 
2014-01-17 09:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
你这表文件名和字段名都是汉字啊  也太。。。。。。。

DO IT YOURSELF !
2014-01-17 09:52
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:5 
REPLACE ALL 年龄 WITH TRANSFORM(VAL(年龄)+1)

REPLACE 介于36至45 WITH '1' FOR  VAL(年龄)>=35 AND VAL(年龄)<=45
其它的类推
2014-01-17 09:57
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
上帝  你的年龄 字段  还有 什么小于35字段啥的  咋都是字符型呢   晕死了

update 岗位分类表  set 小于35 = "1" where 年龄<"35"

DO IT YOURSELF !
2014-01-17 09:57
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
REPLACE ALL 年龄 WITH TRANSFORM(VAL(年龄)+1)
REPLACE ALL 小于35  WITH IIF(VAL(年龄)<36,"1",""),;
                介于36至45  WITH IIF(BETWEEN(VAL(年龄),36,45),"1",""),;
                介于46至55  WITH IIF(BETWEEN(VAL(年龄),46,55),"1",""),;
                大于56  WITH IIF(VAL(年龄)<55,"1","")

相互学习,互相交流,共同提高。
2014-01-17 10:22
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:8 
REPLACE ALL 年龄 WITH TRANSFORM(VAL(年龄)+1)
REPLACE ALL 小于35  WITH IIF(VAL(年龄)<36,"1",""),;
                介于36至45  WITH IIF(BETWEEN(VAL(年龄),36,45),"1",""),;
                介于46至55  WITH IIF(BETWEEN(VAL(年龄),46,55),"1",""),;
                大于56  WITH IIF(VAL(年龄)<55,"1","")

相互学习,互相交流,共同提高。
2014-01-17 10:23
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:2 
以下是引用qjbzjp在2014-1-17 10:23:00的发言:

REPLACE ALL 年龄 WITH TRANSFORM(VAL(年龄)+1)
REPLACE ALL 小于35  WITH IIF(VAL(年龄)<36,"1",""),;
                介于36至45  WITH IIF(BETWEEN(VAL(年龄),36,45),"1",""),;
                介于46至55  WITH IIF(BETWEEN(VAL(年龄),46,55),"1",""),;
                大于56  WITH IIF(VAL(年龄)<55,"1","")
加10分
收到的鲜花
  • qjbzjp2014-01-22 10:54 送鲜花  10朵   附言:加10分 ^_^
2014-01-17 11:09
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
感谢各位大神~~~~~~~~~~

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2014-01-17 11:31
chychychy
Rank: 2
等 级:论坛游民
帖 子:287
专家分:98
注 册:2015-4-18
收藏
得分:0 
1.尽量不要对原表操作,故用一临时表temp。
2.年龄和之后字段参与数值运算,最好是改为数值型字段,而不是现在的字符型字段
3.有一个年龄字段足够,需要什么年龄段统计即可,小于35等字段可以不用,也免得让数据显得凌乱。
程序代码:
***生成临时表
Select * From 岗位分类表 Into Cursor temp Readwrite
***所有年龄加1岁
Replace 年龄 With Transform(Val(年龄)+1) All
***统计替换各年龄段方法1,但意义不大
Replace  All 小于35  With Iif(Val(年龄)<36,"1",""),;
    介于36至45  With Iif(Between(Val(年龄),36,45),"1",""),;
    介于46至55  With Iif(Between(Val(年龄),46,55),"1",""),;
    大于56  With Iif(Val(年龄)>55,"1","")
Browse
***统计查询各年龄段人数,这样就足够了,其实不需要上面的replac
Select Count(*) 总人数,Sum(Iif(Val(年龄)<36,1,0)) As "小于35",;
    sum(Iif(Val(年龄)>=36 And Val(年龄)<=45,1,0)) As "介于36至45", ;
    SUM(Iif(Between(Val(年龄),46,55),1,0)) As 介于46至55 ,;
    SUM(Iif(Val(年龄)>55,1,0)) As 大于56 ;
    FROM temp

***统计替换各年龄段方法2,但意义不大
Replace 小于35  With "1" For Val(年龄)<36
Replace 介于36至45 With "1" For Between(Val(年龄),36,45)
REPLACE 介于36至45 With "1" For Val(年龄)>=36 AND  Val(年龄)<=45
Replace 介于46至55 With "1" For Between(Val(年龄),46,55)
Replace 大于56  With "1" For Val(年龄)>55



[此贴子已经被作者于2024-8-8 14:49编辑过]

2024-08-08 14:41
快速回复:用replace语句行不行?
数据加载中...
 
   



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

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