注册 登录
编程论坛 VFP论坛

怎么在VFP6.0数据库表中利用身份证筛选性别

yjmgjr 发布于 2017-11-22 13:09, 4482 次点击
在一个表中利用身份证号来筛选性别
16 回复
#2
yjmgjr2017-11-22 13:09
求大神带
#3
yjmgjr2017-11-22 13:23
跪求!
#4
吹水佬2017-11-22 13:39
是按身份证号码的话,17位男单女双

#5
yjmgjr2017-11-22 13:41
回复 4楼 吹水佬
具体怎么操作求大神指点
#6
yjmgjr2017-11-22 14:46
新手跪求大神教操作
#7
wengjl2017-11-22 15:43
repl xb with '男' for subs(sfzh,17,1)$'1.3.5.7.9'
#8
yjmgjr2017-11-22 16:15
回复 7楼 wengjl
大神这个语言好像。。。不太完整吧。。
#9
schtg2017-11-22 18:13
回复 7楼 wengjl
正解!
repl xb with '男' for subs(sfzh,17,1)$'1.3.5.7.9'
repl xb with '女' for subs(sfzh,17,1)$'2.4.6.8.0'

也可以使用update... set xb=iif(...) 或 update ...set xb=icase(...)

[此贴子已经被作者于2017-11-22 18:17编辑过]

#10
ycvf2017-11-22 18:40
以下是引用吹水佬在2017-11-22 13:39:03的发言:

是按身份证号码的话,17位男单女双

还有一种情况,第17位是字母。
#11
xs5912222017-11-22 19:08
只有第18位才有字母X的。
#12
sdta2017-11-22 19:08
以下是引用ycvf在2017-11-22 18:40:16的发言:


还有一种情况,第17位是字母。

找个看看
#13
hu9jj2017-11-23 07:59
楼主也许使用的是国外身份证号码。
#14
sdta2017-11-23 09:31
create cursor tt (sfzh c(18),xb c(2))
insert into tt (sfzh) values ("123456789012345678")
insert into tt (sfzh) values ("123456789012345662")
insert into tt (sfzh) values ("123456789012345602")
insert into tt (sfzh) values ("123456789012345612")
replace all xb with iif(val(substr(sfzh,17,1))%2=0,"女","男")
browse
#15
wangzhiyi2017-11-23 15:16
如何是用身份证的信息修改性别字段 repl xb with iif(val(substr(sfzh,17,1))%2=0,'女','男')
如何是用身份证信息筛选性别,只要在需要筛选的地方加上条件,性别为男的条件是val(substr(sfzh,17,1))%2=1,性别为女的条件是val(substr(sfzh,17,1))%2=0
不知道楼主是要哪一种
#16
taifu9452017-11-24 08:42
感觉楼主提这个问题是因为:1、没找到身份证和性别之间的关联规律;2、VFP编程的基本功不扎实。
#17
chychychy2023-12-22 16:23
回复 楼主 yjmgjr
身份证号码第17位是固定的性别标识码,1代表男,2代表女,故可以用iif语句判断替换(以sfzh为身份证号码所在字段,xb为要替换的性别字段为例)
REPLACE xb WITH IIF(SUBSTR(sfzh,17,1)='1',"男","女") all
1